10 – 11 学年 第 2 学期 C
语言程序设计 期中考试试卷
题号 一 二 三 四 五 总分 得分
单项选择题答题表
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 一、单项选择题(共20题,每题1分,共20分,答案填写在单项选择题答题表中)
1. 以下叙述中正确的是( )。
A) C 程序的基本组成单位是语句 B) C 程序中的每一行只能写一条语句 C) 简单C 语句必须以分号结束 D) C 语句必须在一行内写完在 2. 一个C程序是由____________。
A) 一个主程序和若干个子程序构成 B) 一个或多个函数构成 C) 若干过程组成 D) 若干子程序组成
3. 以下选项中正确的定义语句是____________。
A) double a; b; B) double a=b=7; C) double a=7, b=7; D) double, a, b;
4. 计算机能直接执行的程序是( )。
A) C源程序 B) 目标程序 C) 汇编程序
D) 可执行程序
5.
下列符号可以作为变量名的是____________。 A) +a B) *p C) _DAY D) next day
6.
设c是字符变量,则以下表达式正确的是____________。 A) c=666 B) c='c' C) c=\"c\" D) c=\"abcd\"
7.
以下说法正确的是____________。
A) 输入项可以为一个实型常量,如scanf(\"%f\
B) 只有格式控制没有输入项也能进行正确输入,如scanf(\"%d\")
C) 当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(%4.2f\
D) 当输入数据时,必须指定变量的地址,如scanf(\"%f\8.
若a, b, c均定义为整型,要给它们输入数据,正确的输入语句是____________。A) read(a, b, c);
B) scanf(\"%d%d%d\C) scanf(\"%D%D%D\D) scanf(%d%d%d\
9.
若有if (w) –x; else ++y; 则其中与w 等价的表达式是____________。 A) w == l B) w == 0 C) w != l D) w != 0
10.
为了避免嵌套的if-else语句的二义性,C语言规定else总是与____________组成配对关系。
A) 缩排位置相同的if B) 在其之前未配对的if
C) 在其之前最近的未配对的if D) 同一行上的if
11.
选择出合法的if语句(设int x, a, b, c;)____________。 A) if(a == b) x++;
1 B) if (a =< b) x++; C) if(a <> b) x++; D) if (a=>b) x++;
12.
若变量已正确定义为int 型,要通过语句scanf(\"%d, %d, %d\;给a 赋值1、给b 赋值2、给c 赋值3,以下输入形式中错误的是(凵 代表一个空格符)( )。
A) 凵凵凵1,2,3<回车> B) 1凵2凵3<回车>
C) 1, 凵凵凵2, 凵凵凵3<回车> D) 1,2,3<回车>
13.
C语言中while和do-while循环的主要区别是____________。 A) do-while的循环体至少无条件执行一次
B) while的循环控制条件比do-while的循环控制条件严格 C) do-while允许从外部转到循环体内 D) do-while的循环体不能是复合语句
14.
以下关于数组的描述正确的是____________。
A) 数组的大小是固定的,但可以有不同类型的数组元素 B) 数组的大小是可变的,但所有数组元素的类型必须相同 C) 数组的大小是固定的,所有数组元素的类型必须相同 D) 数组的大小是可变的,可以有不同类型的数组元素 15.
以下关于字符数组的描述中错误的是____________ A) 字符数组可以存放字符串
B) 字符数组中的字符串可以整体输入和输出
C) 可以在赋值语句中通过赋值运算符\"=\"对字符数组整体赋值 D) 不可以用关系运算符对字符数组中的字符串进行比较
16.
若有定义语句:char s[10]=\"123\\n\\0\\45670\";,则strlen(s)的值是__________。 A) 9 B) 7 C) 3 D) 4
17.
在C语言程序中,下列叙述正确的是____________。 A) 函数的定义可以嵌套,但函数的调用不可以嵌套 B) 函数的定义不可以嵌套,但函数的调用可以嵌套 C) 函数的定义和调用都可以嵌套 D) 函数的定义和调用均不可以嵌套
18. 以下叙述中错误的是________。
A) 用户定义的函数中可以没有return 语句 B) 用户定义的函数中可以有多个return 语句,以便可以调用一次返回多个函数值
C) 用户定义的函数中若没有return 语句,则应当定义函数为void 类型 D) 函数的return 语句中可以没有表达式
19. 在声明一个结构体类型时系统分配给它的存储空间是____________。
A) 该结构体变量中第一个成员所需存储空间 B) 该结构体变量中最后一个成员所需存储空间 C) 该结构体变量中所有成员所需存储空间的总和
D) 结构体类型本身并不占用存储空间,即系统并不给结构体类型分配存储空
间
20. 已知函数调用f(1, 'k' + 5, g(1,2,3)),则函数f定义中的形参个数为_________个。A) 2 B) 3 C) 4 D) 5
二、填空题(共15空,每空1分,共15分)
1. C编译器的功能是___*.c -- *.obj_________。
2. 表达式9 / 5 + 4的值是____5________。表达式3 * (4 + 5)的值是___27_________。
3. 判断整型变量n是否是偶数的逻辑表达式是_n%2==0__________。 4. 程序的三种基本控制结构分别是_顺序__、_分支__和_循环_。
5. C语言中的循环控制语句有while、do…while和___for_______语句三种。 6. 计算数组的存储空间可以使用sizeof运算符,计算数组a的存储空间的表达式是__sizeof(a)__________。计算数组a的元素个数的表达式是
____sizeof(a)/sizeof(a[0])___。
7. 在函数中可以利用__return_语句返回函数计算结果
8. 若有定义int a[] = {1,2,3,4,5,6},则数组a的大小为____6___,引用数组a的最后一个元素的表达式是__a[5]_________。
9. C语言使用关键字__break___定义立即结束本次循环体的执行。 10. 读取一行文本的字符串处理函数是_gets()/scanf(\"%s\_。
2
三、程序分析题(共5题,每题5分,共25分)
1. 写出以下程序的运行结果(假定程序已包含正确的头文件)。
#include int x=1,y=0; if(!x) y++; else if(x==0) if (x) y+=2; else y+=3; printf(\"%d\\n\} y=0 2. 写出以下程序的运行结果(假定程序已包含正确的头文件)。 main() { int n = 1, fact = 1; while (n <= 5) { fact = fact * n; ++n; } printf(\"%d\\n\} 5X4X3X2X1=120 3. 写出以下程序的运行结果(假定程序已包含正确的头文件)。 main() { int a[10] = {1, 2, 3, 4, 5}; printf(\"%d\\n\} 5+0=5 4. 写出以下程序的运行结果(假定程序已包含正确的头文件)。 #include int fun() { static int x=1; x*=2; return x; } main() { int i,s=1; for(i=1;i<=3;i++) s*=fun(); printf(\"%d\\n\} 64 5. 写出以下程序的运行结果(假定程序已包含正确的头文件)。int fun(int n) { int m; m = 4 * n; return m; } main() { int k = 50, s; s = fun(k); printf(\"%d\\n\} 200 四、程序填空题(共10空,每空2分,共20分) 1.下面的程序计算整数n的因子的和,请填空。 #include scanf(\"%d\&n___); /* 读取整数n */ sum = __0___________; 3 for(i = 1; i <= n; ++i) if ( n % i == 0) _sum +=i__________________; printf(\"sum = %d\\n, __sum____); } 2.下面的程序中定义的函数fun计算数组元素的最大值,请填空 int fun(int b[10]) { int max, i; max = __b[0]_; /* b[0] ~b[9] 都可以的 */ for (i = 1; i < 10; __i++___) if (__b[i]>max__) max = b[i]; /* max return __max___; } void main() { int m, a[10] = {56, 32, 78, 99, 12, 43, 31, 67, 90, 17}; m = fun(a); /* 调用函数fun */ printf(\"Max = %d\\n\ } 五、程序设计题(共2小题,共20分) 1. 编写一个程序,输入一个整数n,输出大于n的最小的素数。例如输入12,程 序应输出13;若输入24,程序应输出29。(本题8分) #include int isPrime(int n); int main(void) { int n; int i; printf(\"Input n: \"); scanf(\"%d\for(i=n+1; ;i++) if(isPrime(i)) { printf(\"%d\\n\break;; } return 0; } int isPrime(int n) { int i; for(i=2; I 数调用该函数计算大小为5的一维数组的最小值并输出。(本题12分) int min(int a, int b, int c); int main(void) { int a[5]={}; printf(\"The min one of the array is: %d\\n\ return 0; } int min(int a, int b, int c) { if (a4 return a; if(bint min(int a, int b, int c) { if (aelse return c; } int min(int a, int b, int c) { int m; if (am=a; else m=b; I f(m 5 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- banwoyixia.com 版权所有 湘ICP备2023022004号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务