C80期末模拟试卷1
总共38题共70分
一、判断题 (共10题,共10分)
1. 主函数中定义的变量也只在主函数中有效,而不因为在主函数中定义而在整个文件或程序中有效。主函数也不能使用其他函数中定义的变量。 (1分) ( )
标准答案:正确
2. C语言中的for语句可以用于循环次数已经确定的情况,但是不能用于循环次数不确定而只给出循环结束条件的情况。 (1分) ( )
标准答案:错误 标准答案:正确 标准答案:正确
3. 逻辑运算符中的“&&”和“||”低于关系运算符,“!”高于算术运算符() (1分) ( )
4. C语言中,变量的指针就是变量的地址。 (1分) ( )
5. x+y=3;
上面这条赋值语句编译可以通过。 (1分) ( )
标准答案:错误 标准答案:错误 标准答案:正确 标准答案:正确 标准答案:正确 标准答案:错误
6. 在程序中往往根据数组的长度来决定字符串长度。 (1分) ( )
7. 将double型的数据赋值给float型变量会有精度损失。 (1分) ( )
8. 不同的函数中可以使用相同的变量名。( ) (1分) ( )
9. 在C中,形式参数只是局限于所在函数 (1分) ( )
10. int x=10;printf(\这组语句的输出结果为10 (1分) ( )
二、单选题 (共25题,共50分)
1. 以下叙述中正确的是( ) (2分) A.程序应尽可能短
B.为了编程的方便,应当根据编程人员的意图使程序的流程随意转移 C.虽然注释会占用较大篇幅,但程序中还是应有尽可能详细的注释 D.在Turbo C环境下,运行的程序就是源程序
标准答案:C
2. 下列语句中错误的是() (2分) A.x=sizeof(int); B.x=sizeof(3.14);
C.printf(“%d”,a=a+1,b--,c+1); D.printf(“%d”,++x,x++);
标准答案:B
3. 已知int t=6,s;则执行语句s=(++t)+(t++);后,s的值是() (2分) A.12 B.13 C.14 D.15
标准答案:C
1
4. printf(\的输出结果为: (2分) A.2 B.3 C.4 D.12
标准答案:C
5. 有定义语句:int x,y;,若要通过scanf(\语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,错误的是() (2分) A.11 12
C.11,1212标准答案:A
6. printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列,如果字符串长度小于5,则输出按方式( ) (2分)
A.左起输出该字符串,右补空格 B.字符串长度从左到右全部输出 C.右对齐输出字符串,左补空格 D.输出错误信息
标准答案:C
7. 以下运算符中不是关系运算符的是() (2分) A.< B.>= C.! D.!=
标准答案:C
8. 假定w、x、y、z、m均为int型变量,有如下程序段: w=1; x=2; y=3; z=4;
m=(w 标准答案:D 9. 以下程序的输出为( ) main() {int x=0,y=-1; if(x!=0) if(x>0) y=1; else y=0; else y=5; printf(\} (2分) A.1 B.-1 C.0 D.5 标准答案:D 11. 运行以下程序的结果为( ) main() { int num=0; while (num<=2) {num++; printf(\} } (2分) A.1234 B.123 C.12 D.1 标准答案:B 12. 以下循环体的执行次数是( ) main() 2 { int i,j; for(i=0,j=1;i<=j+1;i+=2,j--) printf(\(2分) A.3 B.2 C.1 D.0 标准答案:C 13. 以下程序的func函数中含有()个实参 func(func1(exp1,exp2),func2(exp3,exp4,exp5)); (2分) A.1 B.2 C.3 D.5 标准答案:B 14. 当n=-4时,以下代码段将会发生什么情况() int factorial(int n) { if (n= =0) return 1; else return factorial(n-1)* n; } (2分) A.递归函数返回0 B.递归函数进入无限循环 C.递归函数返回-4的阶乘 D.以上三项皆错 标准答案:B 15. 执行下述程序的输出结果是() #include \ func(int x) { static int a=3; a+=x; return a; } main() { int k=2,m=1,n; n=func(k); n+=func(m); printf(\ } (2分) A.8 B.9 C.11 D.14 标准答案:C 16. 以下程序段的输出结果是( )。 main() { int i,k a[10],p[3]; k=5; for (i=0;i<10;i++) a[i]=i; for (i=0;i<3;i++) p[i]=a[i*(i+1)]; for (i=0;i<3;i++) 3 k+=p[i]*2; printf(\ } (2分) A.20 B.21 C.22 D.23 标准答案:B 17. 若用数组名作为函数调用时的实参,则实际上传递给形参的是( ) (2分) A.数组首地址 B.数组的第一个元素值 C.数组中全部元素的值 D.数组元素的个数 标准答案:A 18. 设有定义语句“int a=10,*p=&a;”,则表达式“a+*p”的值是() (2分) A.10 B.20 C.100 D.语法出错 标准答案:B 19. 有以下程序 void fun(char *c,int d) { *c=*c+1;d=d+1; printf(\} void main( ) { char a='a',b='A'; fun(&a,b); printf(\} 程序运行后的输出结果是() (2分) A.A,a,b,a B.b,B,a,A C.A,a,b,A D.b,B,b,A 标准答案:D 20. 执行下述程序的输出结果是() #include char *s1,*s2; s1=s2=\ while (*s2!='\\0') putchar(*s2++); while (--s2>=s1) putchar(*s2); putchar('\\n'); } (2分) A.ABCDABCD B.ABCDDCBA C.DCBADCBA D.DCBAABCD 标准答案:B 21. 设有下述函数定义 int stlen (char *s) { int n=0; while (*s++) n++; return (n); 4
相关推荐: