一.单选题
1. 以下运算符中优先级最高的是( ) (2分) A.< B.+ C.&& D.! 2. 下列说法正确的是() (2分) A.在执行C语言程序时不是从main函数开始的 B.C语言程序书写格式严格,一行内必须写一个语句 C.C语言程序书写格式自由,一个语句可以分写在多行上 D.C语言程序书写格式严格,一行内必须写一个语句,并要有行号 3. 下面的符号常量定义中,正确的是 ( ) (2分) A.#define PI 3.14; B.#include PI 3.14; C.#define PI=3.14 D.#define PI 3.14 4. 以下程序的输出结果是( ) fun(int x, int y, int z) { z=x*x+y*y; } main() { int a=31; fun(5,2,a); printf(\"%d\} (2分) A.0 B.29 C.31 D.无定值 5. 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是( ) (2分) A.地址传递 B.单向值传递 C.由实参传给形参,再由形参传回实参 D.传递方式由用户指定 6. 假设int型变量占两个字节的存储单元,若有定义: int x[10]={0,2,4}; 则数组x在内存中所占字节数为______。 (2分) A.3 B.6 C.10 D.20 7. 下列合法的数组定义是_________。 (2分) A.int a[]=”string”; B.int a[5]={0,1,2,3,4,5}; C.char a=”string”; D.char a[]={0,1,2,3,4,5}; 8. 若给出以下定义: char x[]=\"abcdefg\"; char y[]={'a','b','c','d','e','f','g'}; 则正确的叙述为__________。 (2分) A.数组x和数组y等价 B.数组x和数组y的长度相同 C.数组x的长度大于数组y的长度 D.数组y的长度大于数组x的长度 9. 若定义如下变量和数组_________。 int j; int x[3][3]={1,2,3,4,5,6,7,8,9}; 则下面语句的输出结果是_________。 For (j=0;j<3;j++) Printf(\"%d\(2分) A.1 5 9 B.1 4 7 C.3 5 7 D.3 6 9 10. main() { int p[7]={11,13,14,15,16,17,18}, i=0,k=0; while(i<7 && p[i]%2) { k =k+ p[i]; i++; } printf(\"%d\\n\} 执行后输出结果是_______。 (2分) A.58 B.56 C.45 D.24 11. 以下能正确定义数组并正确赋初值的语句是______。 (2分) A.int N=5,b[N][N]; B.int a[1][2]={{1},{3}}; C.int c[2][ ]= {{1,2},{3,4}}; D.int d[3][2]={{1,2},{34}}; 12. 有以下程序 main() { int m[][3]={1,4,7,2,5,8,3,6,9}; int i,j,k=2; for(i=0; i<3; i++) { printf(\"%d \} } 执行后输出结果是______。 (2分) A.4 5 6 B.2 5 8 C.3 6 9 D.7 8 9 13. 以下能正确定义一维数组的选项是________________。 (2分) A.int num[]; B.#define N 100 int num[N]; C.int num[0..100]; D.int N=100; int num[N]; 14. 以下程序的输出结果是_____ B___。 main() { char cf[3][5]={\"AAAA\printf(\"\\\"%s\\\"\\n\} (2分) A.\"AAAA\" B. \"BBB\" C.\"BBBCC\" D.\"CC\" 15. 以下程序的输出结果是_______。 main() { int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1; for(i=0;i<3;i++) for(j=i;j<=i;j++) t=t+b[i][b[j][j]]; printf(\"%d\\n\} (2分) A.3 B.4 C.1 D.9 16. 若有以下定义语句: char s[10],s=\"abcd\";printf(\"%s\\n\则运行结果是__________。 (2分) A.输出abcd B.输出a C.输出ab cd D.编译不通过 17. 函数调用strcat(strcpy(str1,str2),str3)的功能是_______。 (2分) A.将串str1复制到串str2中后在连接到串str3之后 B.将串str1连接到串str2之后再复制到串str3之后 C.将串str2复制到串str1中后再将串str3连接到串str1之后 D.将串str2连接到串str1中后再将串str1复制到串str3中 18. 下列程序的输出结果是________。 Main() { char ch[7]={\"65ab21\for(j=0;ch[j])>='0'&&ch[j]<='9';j+=2) s=10*s+ch[j]-‘0'; printf(\"%d\\n\} (2分) A.12ba56 B.66521 C.6 D.62 19. 执行以下一段代码后,变量a,b,c的值分别是( ) int x=10,y=9; int a,b,c; a=(--x==y++)?--x:++y; b=x++; c=y; (2分) A.a=9,b=9,c=9 B.a=8,b=8,c=10 C.a=9,b=10,c=9 D.a=1,b=11,c=10 20. 表达式3+(!(7<1)||(3<=7))的值为( ) (2分) A.3 B.4 C.5 D.错误的表达式
二.判断题
1. 不同的函数中可以使用相同的变量名。() (1分) 2. 函数的定义可以嵌套,但函数的调用不可以嵌套。( ) (1分) 3. C语言程序的变量必须先定义再使用() (1分) 4. C语言认为名为Student和student的变量是不同变量 (1分) 5. C语言程序的书写格式虽然自由,但为了清晰,一般在一行内写一个语句() (1分) 6. 在switch-case语句中,必须使用default语句() (1分) 7. C语言中,字符常量可以用单引号或双引号括起来() (1分) 8. 使用putchar函数可以向终端输出一个字符串() (1分) 9. do-while循环是先判断循环条件表达式,后执行循环体;while循环是先执行循环体,后判断循环条件表达式() (1分) 10. 字符串比较的规则是对两个字符串自左至右逐个字符相比(按ASCII码值大小比较),直到出现不同的字符或遇到‘\0’为止。( ) (1分)
三.填空题
1. 下面的函数定义是一个求阶乘的递归调用函数。假定n 0。请填空。 long fac(int n) { long f; if (n==0) f=1; else f=; return (f); } (2分) ★标准答案:1. n*fac(n-1) (或fac(n-1)*n);
2. C源程序的基本单位是。 (2分) 函数; 3. 以下程序运行后的输出结果是:void swap(int x,int y) { int t; t=x;x=y;y=t;printf(\"%d %d \} main() { int a=3,b=4; swap(a,b);printf(\"%d %d\\n\(2分) 4 3 3 4; 4. 若有以下程序 int f(int x,int y) { return (y-x)*x; } main() { int a=3,b=4,c=5,d; d=f(f(3,4),f(3,5)); printf(\"%d\\n\} 执行后输出的结果是 (2分) . 9; 5. 结构化程序由、、三种基本结构组成 (2分) 1. 顺序结构 ; 2. 选择结构 ; 3. 循环结构; 6. 语句标号由标识符表示,由、和组成。第一个字符必须是字母或下划线。 (2分) 1. 字母 ; 2. 数字 ; 3. 下划线; 7. 要使下面的程序从键盘输入一个大写字母给c1,用小写字母输出,请填空: #include \"stdio.h\"main() { char c1,c2; ; printf(\"%c,%d\\n\c2=; printf(\"%c,%d\\n\(2分) 1. scanf(\"%c\ 8. 若有以下程序: main() { int i,j; scanf(\"i=%d,j=%d\printf(\"i=%d,j=%d\j); } 要求给i赋10,给j 赋20,则应该从键盘输入。 (2分) i=10,j=20; 9. 若有以下程序 main() { int p, a=5; if (p=a != 0 ) printf(\"%d\\n\printf(\"%d\\n\执行后输出结果是。 (2分) 1 四.读程序题 1. 以下程序段的输出结果是: #include 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- igbc.cn 版权所有 湘ICP备2023023988号-5
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务