《《C语言程序设计》期中考试试卷(共5页).doc》由会员分享,可在线阅读,更多相关《《C语言程序设计》期中考试试卷(共5页).doc(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上淮 海 工 学 院 10 11 学年 第 2 学期 C语言程序设计 期中考试试卷题号一二三四五总分得分单项选择题答题表1234567891011121314151617181920一、单项选择题(共20题,每题1分,共20分,答案填写在单项选择题答题表中)1. 以下叙述中正确的是( )。A) C 程序的基本组成单位是语句B) C 程序中的每一行只能写一条语句C) 简单C 语句必须以分号结束D) C 语句必须在一行内写完在2. 一个C程序是由_。A) 一个主程序和若干个子程序构成B) 一个或多个函数构成C) 若干过程组成D) 若干子程序组成3. 以下选项中正确的定义语句
2、是_。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=cC) c=cD) c=abcd7. 以下说法正确的是_。A) 输入项可以为一个实型常量,如scanf(%f, 3.5)B) 只有格式控制没有输入项也能进行正确输入,如scanf(%d)C) 当输入一个
3、实型数据时,格式控制部分应规定小数点后的位数,如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 = l B) w = 0C) w != lD) w != 010. 为了避免嵌套的if-els
4、e语句的二义性,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,3B) 1凵2凵3C) 1,
5、 凵凵凵2, 凵凵凵3D) 1,2,313. C语言中while和do-while循环的主要区别是_。A) do-while的循环体至少无条件执行一次B) while的循环控制条件比do-while的循环控制条件严格C) do-while允许从外部转到循环体内D) do-while的循环体不能是复合语句14. 以下关于数组的描述正确的是_。A) 数组的大小是固定的,但可以有不同类型的数组元素B) 数组的大小是可变的,但所有数组元素的类型必须相同C) 数组的大小是固定的,所有数组元素的类型必须相同D) 数组的大小是可变的,可以有不同类型的数组元素15. 以下关于字符数组的描述中错误的是_A) 字
6、符数组可以存放字符串B) 字符数组中的字符串可以整体输入和输出C) 可以在赋值语句中通过赋值运算符=对字符数组整体赋值D) 不可以用关系运算符对字符数组中的字符串进行比较16. 若有定义语句:char s10=123n045670;,则strlen(s)的值是_。A) 9B) 7C) 3D) 417. 在C语言程序中,下列叙述正确的是_。A) 函数的定义可以嵌套,但函数的调用不可以嵌套B) 函数的定义不可以嵌套,但函数的调用可以嵌套C) 函数的定义和调用都可以嵌套D) 函数的定义和调用均不可以嵌套18. 以下叙述中错误的是_。A) 用户定义的函数中可以没有return 语句B) 用户定义的函数
7、中可以有多个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空,每空
8、1分,共15分)1. C编译器的功能是_*.c - *.obj_。2. 表达式9 / 5 + 4的值是_5_。表达式3 * (4 + 5)的值是_27_。3. 判断整型变量n是否是偶数的逻辑表达式是_n%2=0_。4. 程序的三种基本控制结构分别是_顺序_、_分支_和_循环_。5. C语言中的循环控制语句有while、dowhile和_for_语句三种。6. 计算数组的存储空间可以使用sizeof运算符,计算数组a的存储空间的表达式是_sizeof(a)_。计算数组a的元素个数的表达式是_sizeof(a)/sizeof(a0)_。7. 在函数中可以利用_return_语句返回函数计算结果8.
9、 若有定义int a = 1,2,3,4,5,6,则数组a的大小为_6_,引用数组a的最后一个元素的表达式是_a5_。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(%dn,y);y=02. 写出以下程序的运行结果(假定程序已包含正确的头文
10、件)。main() int n = 1, fact = 1;while (n = 5) fact = fact * n;+n;printf(%dn, fact);5X4X3X2X1=1203. 写出以下程序的运行结果(假定程序已包含正确的头文件)。main() int a10 = 1, 2, 3, 4, 5;printf(%dn, a4 + a9); 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();
11、printf(%dn,s);645. 写出以下程序的运行结果(假定程序已包含正确的头文件)。int fun(int n) int m;m = 4 * n;return m;main() int k = 50, s;s = fun(k);printf(%dn, 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
12、) _sum +=i_;printf(sum = %dn, _sum_);2下面的程序中定义的函数fun计算数组元素的最大值,请填空int fun(int b10) int max, i;max = _b0_; /* b0 b9 都可以的 */for (i = 1; i max_) max = bi; /* max bI */return _max_;void main() int m, a10 = 56, 32, 78, 99, 12, 43, 31, 67, 90, 17;m = fun(a);/* 调用函数fun */printf(Max = %dn, m);五、程序设计题(共2小题,共
13、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(%dn, i)break;return 0;int isPrime(int n)int i;for(i=2; Isqrt(n); i+)if (n%i=0)return 0;return 1;2. 编
14、写一个名为min的函数计算三个整数a,b和c的最小值;然后编写main函数调用该函数计算大小为5的一维数组的最小值并输出。(本题12分)int min(int a, int b, int c);int main(void)int a5=;printf(The min one of the array is: %dn, min(min(a0, a1, a2), a3, a4);return 0;int min(int a, int b, int c)if (ab & ac)return a;if(ba & bc)return b;if (ca & cb)return c;int min(int a, int b, int c)if (ab & ac)return a;if(bc)return b;elsereturn c;int min(int a, int b, int c)int m;if (ab)m=a;elsem=b;If(mc)return m;elsereturn c;专心-专注-专业