课程编号 020423 考试形式 闭卷 题号 得分 阅卷 一 二 三 四 五 六 七 八 九 十 总分 考试日期 2012.6 一、选择填空题(2×27=54分)
1、以下叙述不正确的是______________。
A、一个C源程序必须包含一个main函数。 B、一个C源程序可由一个或多个函数组成。 C、C程序的基本组成单位是函数。
D、在C程序中,注释说明只有位于一条语句的后面。 2、______________是C语言合法的常量。 A、086 B、7L C、6e2.1 D、‟vc‟
3、设int类型的数据长度为2字节,则int类型数据的取值范围是_________。 A、 0~255 B、 -32768~32767
C、 -256~255 D、 0~65535 4、以下合法的标识符是______________。 A、int B、_num1 C、3r D、c#
5、用scanf(“%d%lf”,&a,&b)输入数据时,下面说法中正确的是___________。 A、a是整形变量,b是字符型变量 B、a是长整形变量,b是单精度型变量 C、a是整形变量,b是双精度型变量 D、a是长整形变量,b是双精度型变量
6、描述x∈(10,20]的C语言表达式是_____________。 A、x>=10 && x<20 B、x>10 || x<=20 C、x>10 && x<20 D、x>10 && x<=20 7、下列选项中正确的语句组是______。
A、char s[8]; s={\"Beijing\ B、char *s; s={\"Beijing\C、char s[8]; s=\"Beijing\" D、char *s; s=\"Beijing\" 8、下列关于c语言数据文件的叙述中正确的是______。
A、文件由ASCII码字符序列组成,C语言只能读写文本文件 B、文件由二进制数据序列组成,C语言只能读写二进制文件
C、文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件 D、文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件
9、判断char型变量ch是否为大写字母的正确表达式是 。
A、 „A‟<=ch<=„Z‟ B、(ch>=„A‟)&(ch<=„Z‟)
C、(ch>=„A‟)&&(ch<=„Z‟) D、(„A‟<= ch)AND(„Z‟>= ch)
10、int型变量在内存中占2个字节,若int a[10]={0,2,4};则数组a所占字节数是__________。
A、3 B、10 C、20 D、6 11、以下能正确定义二维数组的是______。
A、int a[][3];
B、int a[][3]={2*3}; C、int a[][3]={};
D、int a[2][3]={{1},{2},{3,4}}; 12、设x=3.6,a=8,y=5.3,算术表达式x+a%3*(int)(x+y)%5/3的值为_____________。 A、3.6 B、3.9 C、4.6 D、5
13、若二维数组a有m列,则在a[i][j]前的元素个数为__________ A、j*m+I B、i*m+j C、i*m+j-1 D、i*m+j+1
14、若用数组名作函数调用的实参,传递给形参的是_____________。 A、数组的首地址 B、数组第一个元素的值 C、数组中全部元素的值 D、数组元素的个数
15、设有定义:int a,*pa=&a; 以下scanf语句中能正确为变量a读入数据的是______。
A、scanf(\"%d\B、scanf(\"%d\C、scanf(\"%d\D、scanf(\"%d\
16、下面关于for循环的正确描述是___________。 A、for循环只能用于循环次数已经确定的情况 B、for循环是先执行循环体语句,后判断表达式 C、在for循环中,不能用break语句跳出循环体
D、for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 17、C语言中while与do-while语句的主要区别是_____________。 A、while的循环条件比do-while的循环控制条件体严格 B、do-while允许从外部转到循环体内 C、do-while 的循环体不能是复合语句 D、do-while的循环体至少无条件执行一次 18、以下叙述中正确的是____________
A、C语言程序将从源程序中第一个函数开始执行
B、可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行
C、C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束 D、main可作为用户标识符,用以命名任意一个函数作为主函数 19、以下正确的描述是_____________。
A、在循环结构中,continue语句的作用是结束整个循环的执行 B、在循环结构中,break语句的作用是提前结束本次循环的执行 C、在循环体使用break语句或continue语句,其作用相同 D、在循环结构中,break语句的作用是结束整个循环的执行
20、以下程序的输出结果为__________。 #define MUL(x) x*x main( )
{ int a=4,b=6,c=7,d=MUL(a+b)*c; printf(\"d=%d\ }
A、d=70 B、d=80 C、d=140 D、d=700 21、下面程序的输出结果是___________ main()
{ int m=5; if (m++>5) printf(“%d\\n”,m); else printf(“%d\\n”,m --); }
A、7 B、6 C、5 D、4 22、下程序段中的变量已正确定义 for(i=0;i<4;i++,j++)
for(k=1;k<3;k++); printf(\"*\"); 程序段的输出结果是 。 A、******** B、****
C、** D、* 23、有以下程序
int f(int a)
{ return a%2; } main()
{ int s[8]={1,3,5,2,4,6},i,d=0;
for (i=0;f(s[i]);i++) d+=s[i]; printf(\"%d\\n\}
程序运行后的输出结果是______。 A、9 B、11 C、19 D、21
24、假定所有变量都已定义,下列程序运行后X的值是___________ a=b=c=0; x=35; if(!a) x--; else if (b) ; if(c) x=3; else x=4; A、34 B、4 C、35 D、3 25、有以下程序:
main()
{ int i,s=0;
for(i=1;i<10;i+=2) s+=i+1; printf(\"%d\\n\}
程序执行后的输出结果是______。 A、自然数1~9的累加和 B、自然数1~10的累加和 C、自然数1~9中奇数之和 D、自然数1~10中偶数之和
26、以下程序的输出结果是_____________。 void main()
{ char s[ ]=\"ABCD\"; int *p;
for (p=s;p27、下面程序的输出结果是_______________。 void main() { int i=10; switch(i) { case 9:i+=1; case 10:i+=1; case 11:i+=1; case 12:i+=1; } printf(“i=%d\\n”,i); }
A、 10 B、 11 C、 12 D、 13
二、程序阅读题,将结果填在题后的横线上。(4×4=16分) 1、
Void main() {
int n;
for ( n =1 ; n <= 10 ; n++ ) if ( n % 3 != 0 ) continue ; else
printf ( “ %d ” , n ) ;
}
输出结果: 2、 main( ) {
int a[6]={12,4,17,24,27,16}; int b[6]={27,13,4,25,23,16}; for (int i=0;i<6;i++) {
for (int j=0;j<6;j++) {
if (a[i]==b[j]) break; if (j<6)
printf(″%d″,a[i]); } } }
输出结果: 3、
#include int i=0,sum=0; while (1) { sum+=i; i++; if (i>5) break; } printf (″sum=%d\\n″,sum); } 程序运行结果: 4、 #include int t; t=a;a=b;b=t; } int main(void) { int c[10]={1,2,3,4,5,6,7,8,9,0},i; for(i=0;i<10;i+=2) fun(c[i],c[i+1]); for(i=0;i<10;i++) printf(\"%d,\ printf(\"\\n\"); return 0; } 程序运行结果: 三、程序填空题 (10×3=30分) 1、下列程序的作用是:给出年、月、日,计算出该日是该年的第几天。 比如输入2000,3,1,输出61。 void main() { int year,month,day,days,i,d; printf(“请输入年,月,日:”); scanf(“%d,%d,%d”,&year,&month,&day); ___________; //设初值 for( i=1;__________; i ++) { switch(________) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: d=31; break; case 4: case 6: case 9: case 11: d=30; break; case 2: if(year%4 == 0 && year%100 != 0 || year%400 == 0) d=29; else d=28; } days += d; } printf(“%d年%d月%d日是该年的第%d天。\\n”,year,month,day,_________); } 2、下面程序的功能是将字符数组a下标值为偶数的元素由小到大排序,其它元素不变。 #include printf(“\\n”); } 3、以下程序计算1! + 2! + 3! + … + 7! main() { int i,n; long sum=0; n = ______________; for(i=1;i<=7;i++) { n=____________; _____________; } printf(“sum=%ld\\n”,sum); } 因篇幅问题不能全部显示,请点此查看更多更全内容