当前位置:文档之家› 《C语言程序设计》期中考试试卷

《C语言程序设计》期中考试试卷

淮海工学院10 – 11 学年第 2 学期 C语言程序设计期中考试试卷单项选择题答题表题答题表中)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)+aB)*pC)_DAYD)next day6.设c是字符变量,则以下表达式正确的是____________。

A)c=666B)c='c'C)c="c"D)c="abcd"7.以下说法正确的是____________。

A)输入项可以为一个实型常量,如scanf("%f",B)只有格式控制没有输入项也能进行正确输入,如scanf("%d")C)当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(%4.2f", &f)D)当输入数据时,必须指定变量的地址,如scanf("%f", &f)8.若a, b, c均定义为整型,要给它们输入数据,正确的输入语句是____________。

A)read(a, b, c);B)scanf("%d%d%d", a, b, c);C)scanf("%D%D%D", a, b, c);D)scanf(%d%d%d", &a, &b, &c);9.若有if (w) –x; else ++y; 则其中与w 等价的表达式是____________。

A)w == lB)w == 0C)w != lD)w != 010.为了避免嵌套的if-else语句的二义性,C语言规定else总是与____________组成配对关系。

A)缩排位置相同的ifB)在其之前未配对的ifC)在其之前最近的未配对的ifD)同一行上的if11.选择出合法的if语句(设int x, a, b, c;)____________。

A)if(a == b) x++;B)if (a =< b) x++;C)if(a <> b) x++;D)if (a=>b) x++;12.若变量已正确定义为int 型,要通过语句scanf("%d,%d, %d", &a, &b, &c);给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)9B)7C)3D)417.在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)2B)3C)4D)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", )_。

三、程序分析题(共5题,每题5分,共25分)1.写出以下程序的运行结果(假定程序已包含正确的头文件)。

#include <>main(){int x=1,y=0;if(!x)y++;else if(x==0)if (x) y+=2;else y+=3;printf("%d\n",y);}y=02.写出以下程序的运行结果(假定程序已包含正确的头文件)。

main() {int n = 1, fact = 1;while (n <= 5) {fact = fact * n;++n;}printf("%d\n", fact);}5X4X3X2X1=1203.写出以下程序的运行结果(假定程序已包含正确的头文件)。

main() {int a[10] = {1, 2, 3, 4, 5};printf("%d\n", a[4] + a[9]);}5+0=54.写出以下程序的运行结果(假定程序已包含正确的头文件)。

#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",s);}645.写出以下程序的运行结果(假定程序已包含正确的头文件)。

int fun(int n) {int m;m = 4 * n;return m;}main() {int k = 50, s;s = fun(k);printf("%d\n", s);}200四、程序填空题(共10空,每空2分,共20分)1.下面的程序计算整数n的因子的和,请填空。

#include <>void main() {int i, n, sum;printf("n = ");scanf("%d", _&n___); /* 读取整数n */sum = __0___________;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 <b[I] */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", m);}五、程序设计题(共2小题,共20分)1.编写一个程序,输入一个整数n,输出大于n的最小的素数。

例如输入12,程序应输出13;若输入24,程序应输出29。

(本题8分)#include <>#Include <>int isPrime(int n);int main(void){int n;int i;printf("Input n: ");scanf("%d", &n);for(i=n+1; ;i++)if(isPrime(i)){printf("%d\n", i)break;;}return 0;}int isPrime(int n){int i;for(i=2; I<sqrt(n); i++)if (n%i==0)return 0;return 1;}2.编写一个名为min的函数计算三个整数a,b和c的最小值;然后编写main函数调用该函数计算大小为5的一维数组的最小值并输出。

相关主题