《計算機導論》(A)卷課程試卷
適用專業:計算機科學與技術 考試方式:機考 考試時間 :2012 年12 月
班級學號 12570219 姓名: 李誌偉 成績
得分登記(由閱卷教師填寫)
題號 壹 二 三 四
分數
考生須知:
提交考試結果:
編程題,將程序源代碼粘貼到試卷相應題目下端,以學號姓名命名文件。
選擇或填空題(每小題2分***20分)
1.完整的計算機系統應包括( B )。
A.主機和外部設備 B.硬件系統和軟件系統
C.操作系統和應用軟件系統 D.輸入設備和輸出設備
2.以下敘述正確的是 。
A.do-while語句構成的循環不能用其它語句構成的循環來代替。
B.do-while語句構成的循環只能用break語句退出。
C.用do-while語句構成的循環,在while後的表達式為非零時結束循環。
D.用do-while語句構成的循環,在while後的表達式為零時結束循環。
3. C語言中運算對象必須是整型的運算符是 。
A. %=
B. / C. =
D. *
4.將高級語言編寫的程序翻譯成機器語言程序,采用的兩種翻譯方式是
A. 編譯和解釋 B. 編譯和匯編
C. 編譯和鏈接 D. 解釋和匯編
5. 微型計算機系統的中央處理器是由 組成的
A. 內存儲器和控制器 B. 主存儲器和運算器
C. 控制器和運算器 D. 內存儲器.控制器和運算器
6.以下符號在C語言中 不能用作用戶標識符。
A. _256
B. 3char C.
abc D. ds3
7. 計算機能直接執行的程序設計語言是 。
A. C B. BASIC
C. 機器語言 D.匯編語言
8. 下列能正確表示a≥10或a≤0的關系表達式是_______。
A. a>=10or a<=0 B. a>=10 | a<=0
C. a>=10 || a<=0 D. a>=10 && a<=0
9.C語言中用 1 表示邏輯值“真”,用 0 表示邏輯值“假”。
10. 微機中1個字節表示的二進制位數是 8 位數 。
二. 完成下列各題
1. 下面這個程序用於讀入5個整數,當程序讀入的數據n為正整數時,則顯示該數,請補充程序。(5分)
#include <stdio.h>
void main()
{ int i, n;
for (i=1; i<=5;i++)
{
printf("Pleaseenter n:");
scanf( “%d”,&n );
if (n > 0)printf(“該整數為:%d”,n );
}
printf("Programis over!\n");
}
2. 改寫下段程序,實現從控制臺輸入任意字符如果是大寫轉換成小寫,如果是小寫轉換成大寫,其它字符原樣輸出。(10分)
#include<stdio.h>
void main()
{ char c1,c2;
c1=’A’;
c2=c1+32;
printf("%c\n",c2);
}
答案代碼:
#include <stdio.h>
void main()
{ char c1,c2;
printf("請輸入壹個字符:");
scanf("%c",&c1);
if (c1<='z' && c1>='a')
{c2=c1-32;
printf("大寫字母為:%c\n\n",c2);}
else if (c1<='Z' && c1>='A')
{c2=c1+32;
printf("小寫字母為:%c\n\n",c2);
}
else
printf("原字符為:%c\n\n",c1);
}
3. 下列程序有何錯誤?請改正。(10分)
#include<stdio.h>
void main()
{ short x,y,z;
x=200;
y=300;
z=x*y;
printf("%d\n",z);
}
答案代碼:
#include<stdio.h>
void main()
{ int x,y,z;
x=200;
y=300;
z=x*y;
printf("%d\n",z);
}
4. 閱讀程序,補充程序的功能。(10分)
從鍵盤任意輸入壹個年號(year),判斷它是否是閏年。若是閏年,輸出“它是閏年”,否則輸出“它不是閏年”。已知符合下列條件之壹者是閏年:能被4整除,但不能被100整除。能被400整除。
#include <stdio.h>
void main()
{ int year, flag;
printf("Enteryear:");
scanf("%d",&year );
if((year%4=0&&year%100!=0)||year%400=0)
{ flag =1;
}
else
{ flag = 0;
}
if ( flag=1 )
{
printf("它是閏年\n");
}
else
{
printf("它不是閏年\n");
}
}
三、編寫程序,並調試程序正確運行。
1. 編寫壹個程序,從鍵盤輸入某計算機的價格,再輸出該價格打7折後的價格。(15分)
答案代碼:
#include <stdio.h>
#include <windows.h>
int main()
{
float a,b;
printf("輸入壹臺計算機的價格:");
scanf("%f",&a);
b=0.7*a;
printf("打7折後的價格為:%.1f\n\n",b);
system ("pause");
return 0;
}
2. 從鍵盤輸入壹個三位數,求各位數字之和。例如:輸入的三位數是385,輸出結果為3+8+5=16;(15分)
答案代碼:
#include <stdio.h>
#include <windows.h>
#include <string.h>
int main()
{
char a[3];
intb,c,d,e;
printf("請輸入壹個三位數:");
scanf("%s",a);
b=a[2]-'0';
c=a[1]-'0';
d=a[0]-'0';
e=b+c+d;
printf("各位數字之和為:%d\n\n",e);
system("pause");
return0;
}
3. 日本壹位中學生發現壹個奇妙的“定理”,請角古教授證明,而角古教授無能為力,於是產生角古猜想,猜想的內容是:任意自然數,若為偶數除以2,若為奇數則乘以3加1,得到壹個新的自然數,按照上面的法則繼續演算,若幹次後結果必然為1,請編程驗證。(15分)
答案代碼:
#include <stdio.h>
void main()
{ int a;
printf("輸入壹個自然數:");
scanf("%d",&a);
if(a%2==1)
a=a*3+1;
while(a!=1)
{
a=a/2;
}
printf("所得結果為:%d\n",a);
}
我是實驗學院的,這是我們2012大壹期末的,希望有幫助,裏面的答案是自己寫的,可忽略