計算機基礎與程序設計2012年4月真題試題與答案解析(02275)
計算機基礎與程序設計2012年4月真題試題與答案解析(02275),本試卷總共100分。
一、單項選擇題
(本大題共20小題.每小題1分,共20分)在每小題列出的四個備選項中只有一個是符合題目要求的,請將其代碼填寫在題后的括號內。錯選、多選或未選均無分。
1.存儲容量1KB等于 ( )
A.23字節
B.210字節
C.220字節
D.230字節
2.下面哪種設備是輸出設備? ( )
A.掃描儀
B.鍵盤
C.鼠標
D.顯示器
3.設有int a=3,b=—4,c=5;表達式++a-c+b++的值是 ( )
A.-6
B.-5
C.-4
D.-3
4.設有int x,y;表達式y=(x=1,++x,x+2)的值是 ( )
A.1
B.2
C.3
D.4
5.以十六進制形式輸出整型數的格式說明符是 ( )
A.%x
B.%u
C.%o
D.%d
6.下列語句中,有語法錯誤的是 ( )
A.if(x﹥y);
B.if(x= =y)x+y;
C.if(x!=y) scanf(″%d″,&x)else scanf (″%d″,&y);
D.if(x﹤y){x++;y++;}
7.設有程序段int x=1,y=-1;if(y﹤0)x-=y;else x+=y;執行完該程序段后,x的值為 ( )
A.-1
B.0
C.1
D.2
8.下面程序段的循環次數是( )int k=2;while(k= =0) printf (″%d″,k);k--;printf (″ ″);
A.0次
B.1次
C.2次
D.無限次
9.下面程序段的輸出結果是( )for(i=1;i﹤3;i++)for(j=1;j﹤3;j++)printf(″%d”,i+j);
A.2 3 3 4
B.2 3 4
C.2 3
D.2 3 4 3 4
10.若有定義int a[4]={1,2,3,4};則表達式a[a[2]- 3*a[0]+1]的值是( )
A.1
B.2
C.3
D.4
11.在C語言程序中,關于函數的定義和調用,以下描述正確的是( )
A.函數的定義可以嵌套,但函數的調用不可以嵌套
B.函數的定義不可以嵌套,但函數的調用可以嵌套
C.函數的定義和函數的調用均不可以嵌套
D.函數的定義和函數的調用均可以嵌套
12.關于main函數,以下說法中正確的是 ( )
A.C語言程序總是從有定義的函數起順序執行,在main函數中結束
B.在C語言程序中,被調用的函數必須在main()函數中定義
C.C語言程序中的main()函數必須放在程序開始部分
D.C語言程序總是從main()函數開始執行
13.若要定義一個長整型的變量a和一個指向變量a的指針變量q,下面正確的定義語句是( )
A.long a,*q=a;
B.long a,*q=&a;
C.long*q=&a,a;
D.long a,q=&a;
14.若有說明long int x[5];下面能正確表示數組元素地址的是( )
A.&x[3]
B.&x
C.&x+1
D.*x
15.下面關于結構體類型的定義正確的是( )
A.
B.
C.
D.
16.下面列出的位運算符中,表示按位與操作的是 ( )
A.~
B.!
C.&
D.^
17.下面各個位運算符優先級從左到右依次升高的是 ( )
A.﹥ ﹥ | & ~
B.| ﹥ ﹥ & ~
C.| & ﹥ ﹥ ~
D.~ | & ﹥ ﹥
18.設有說明:int u=1,v=3;表達式:u﹤﹤=v的值是( )
A.0
B.1
C.3
D.8
19.如果將文件指針fp指向文件末尾,正確的語句是 ( )
A.feof(fp);
B.rewind(fp);
C.fseek(fp,0L,0);
D.fseek(fp,0L,2);
20.若要在C盤TC目錄下,建立一個a1.dat的文本文件,正確使用打開文件的函數是( )
A.fopen(″C:\ TC \ a1.dat″,″r″)
B.fopen(″C: TC a1.dat″,″r″)
C.fopen(″C:\ TC \ a1.dat″,″w″)
D.fopen(″C: TC a1.dat″,″w″)
二、多項選擇題
(本大題共5小題.每小題2分.共10分)在每小題列出的五個備選項中有二至五個是符合題目要求的.請將其代碼填寫在題后的括號內。錯選、多選、少選或未選均無分。
11.下面屬于合法的C語句的有 ( )
A.表達式語句
B.函數調用語句
C.子程序調用語句
D.空語句
E.循環語句
12.下面循環語句中,沒有“無限循環”錯誤的循環語句有 ( )
A.for(;;);
B.for(i=1;i﹤10;i++);
C.while(1);
D.while(0);
E.do{循環體)while(1);
13.設有聲明:int a[5]={1,3,5,7,9);下面表達式的結果為10的有 ( )
A.a[l]+a[3]
B.a[2]-2*a[1]
C.2*a[2]
D.a[0]+a[4]
E.a[1]+[-a[2]+a[3]
14.若有如下定義及賦值:int x=5,*p,*pl;p=&x;pl=p;則可以輸出變量x的值的語句有 ( )
A.printf(″%d ″,x);
B.printf(″%d ″,*p);
C.printf(″%d ″,p1);
D.printf(″%d ″,&x);
E.printf(″%d ″,*p1);
15.設有關于結構體類型的定義:struct boat {char name[10];int weight;}myboat,*ps;下面各項中語句都正確的有 ( )
A.myboat.name=″Li″。Myboat.weight=1600;
B.ps=&myboat;strcpy(ps-﹥name,″Wuhan″);
C.ps=&myboat; Ps-﹥weight=2700;
D.strcpy(myboat.name,″Wine″);ps=&myboat;
E.ps=&myboat,strcpy(myboat.name,″Shanghai″);Ps-﹥weight=5512;
三、簡答題
(本大題共4小題。每小題4分。共16分)
21.寫出將x,y,z,w分別聲明為整型變量、短整型變量、長整型變量和無符號整型變量的語句。
22.將下面for循環的程序段,用含while循環的程序段實現。for(s=0,i=1;i﹤=10;i++)s+=i;
23.簡述聲明語句:char *p[4];的含義。
24.設有聲明:struct cjd{long bh;long int xq;char xm[9];float score[3];}x={201101,2,″張大力″,76,85.0,90);簡單回答(1)結構體名;(2)結構體類型變量;(3)結構體類型變量所占字節數;(4)結構體成員x.score[2]的值。
四、閱讀分析題
(本大題共6小題,每小題5分,共30分)
31.寫出下面程序的運行結果main() {int a=1,b=2,c=3;++a;b=b+a;c=c/2;?printf(″%d,%d,%d ″,a,b,c);}
32.寫出下面程序的運行結果main() { char ch; ch=′a′;switch(ch){case′a′:printf(″* ″);
case′b′:printf(″** ″);case′c′:printf(″*** ″); }ch=′b′;switch(ch){case ′b′:printf(″** ″);case ′a′:printf(″* ″);break;case ′c′:printf(″*** ″);}}
33.寫出下面程序的運行結果void main(void){int x;for(x=1;x﹤10;x+=2)printf(″%d %d ″,x,x*x);}
34.寫出下面程序的運行結果#include﹤string.h﹥??main()??{????char a[5][8]={?″java″,″fortran″,″basic″,″cobol″,″pascal″},b[8],c[8];????int i;????strcpy(b,a[0]);????strcpy(c,a[0]);????for(i=1;i﹤5;i++)????{????if(strcmp(b,a[i])﹤0)strcpy(b,a[i]);????if(strcmp(c,a[i])﹥0)strcpy(c,a[i]);????}????printf(″%s ″,b);????printf(″%s ″,c);??}
35.寫出下面程序的運行結果void main(void)?{ ????int x;???for(x=1;x﹤=5;x++)?????printf(″%d,%d ″,x,fun(x));?}?int fun(int x)?{???static int fac=1;???fac*=x;???return fac;?}
36.?寫出下面程序的運行結果void f2(char*t,char*s)?{???while(*t!=′ ′)t++;???while(*s!= ′ ′)???{?????*t=*s:?????s++;t++;???}???*t=*s;?}?void main(void)?{???char s[80]= ″?″,*ps[3]={ ″there″,″is a″,″car″};???int i;???for(i=0; i﹤3;i++)?????f2(s,ps[i]);???printf(″%s ″,s);?}
五、程序設計題
(本大題共2小題.每小題12分.共24分)
41.從鍵盤輸入10個整數并存放到一維數組中,計算下標為奇數的元素的累加和并輸出運行結果。
42.從鍵盤上輸入10個浮點型數,求出10個數的總和與平均值,并將總和與平均值寫到d盤根目錄下的文本文件array.dat中。