《2022年C语言期末考试试题 .pdf》由会员分享,可在线阅读,更多相关《2022年C语言期末考试试题 .pdf(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、学而不思则惘,思而不学则殆20XX 年 09 级 C 程序设计期末考试卷(A)注意 所有答案写在单张的答题卷上。一、 判断题(本题共10分,每小题 1 分,用 T 表示正确,用F 表示错误。)(1) C 语言的标识符由字母、数字和下划线组成,其中第一个字符必须是字母或下划线。(2) C 语言中宏定义也是C 语句,其末尾要加分号。(3) C 源程序经过编译后就生成了可执行文件(以.exe 为扩展名)。(4) C 语言中的变量在使用前必须先定义,定义时要指定变量名和数据类型。(5) 在 C 语言中, for 语句只能用在已知循环次数的情况下。(6) 如果定义了int array10 ,其元素下标分
2、别从1 到 10。(7) 在函数中用关键字static 声明的变量是静态局部变量,其生命周期持续到程序结束。(8) 在 C语言中,函数调用不会改变实参的值。(9) 表达式 strcmp( “ 100” , “ 99” ) 值是大于零的。(10) Struct是定义结构类型的关键字,struct和它后面的结构名一起组成一个新的数据类型。二、 单选题(本题共20分,每小题 2 分)(11) 以下叙述正确的是_。A 构成 C 程序的基本单位是函数B 可以在一个函数中定义另一个函数C main 函数必须放在其它函数之前D 所有被调用函数必须在调用之前进行定义(12) 若定义 x 和 y 为 doubl
3、e 类型,则printf( “ %.1f” , (x=1, y=x+3/2) 的 x 结果是 _。A 1.0 B 1.5 C 2.0 D2.5 (13) 能正确表示逻辑关系: “a10 或 a0”的 C语言表达式是_。A a=10 or a=10 | a=10& a=10 | a=0 (14) 在以下定义中,错误的是_。A int a=1,2 Bchar s= ” hello”Cchar s10= “ test” Dint n=5, an 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - -
4、 - - - - 第 1 页,共 7 页 - - - - - - - - - 学而不思则惘,思而不学则殆(15) 若有定义 char x = abcde; char y = a, b, c, d, e;则。Ax 数组与 y 数组的长度相同Bx 数组长度大于y 的长度Cx 数组长度小于y 数组长度Dx 数组等价于y 数组(16) 当调用函数时,实参是一个数组名,则向函数传送的是。A 数组的长度B 数组的首地址C 数组的每一个元素的地址D 数组每个元素的值(17) 以下有关 switch 语句的正确说法是_。Abreak 语句是语句中必须的一部分B 在 switch 语句中的每一个case都要用
5、break 语句Cbreak 语句在 switch 语句中不可以使用D 在 switch 语句中可以根据需要使用或不使用break 语句(18) 已知 a=3;则 a2 值是 _。A1 B6 C9D2 (19) 如果 k=0,a=1,b=2,c=3; 执行 k=ab?b+2: c*2; 后, k 的值等于 _。A 0 B 2 C4D 6(20) 已有定义 int i, a10, *p; 则合法的赋值语句是_。A p=3; B p=a5;C p=a+2;Dp=a2+2; 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - -
6、- - - - - - - - - - - - 第 2 页,共 7 页 - - - - - - - - - 学而不思则惘,思而不学则殆三、 程序填空题(本题共30 分,每小题 2 分)阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个最佳的答案。1【程序说明】输入一个整数n,打印出 n 层倒金字塔。 (下图是n=3 时的图案)* * *【程序代码】#include main() int n,i ,j; scanf(%d,&n); for(j=n;_(21)_;j-) for(i=0;_(22)_;i+) printf( ); for(i=0;_(23)_;i+) printf(*)
7、; _(24)_; 【选项】(21) A jn B j=1 D j=n (22) A in-j B ij D i=j (23) A in-j C i2*j-1 (24) A return 0 B continue C break D printf(n) 2.【程序说明】从键盘上任意输入一个字符串和字符,要求从该字符串中删除所有的该字符。【程序代码】#include _(25)_ void main() char s80,c; int i,j; gets(s); c=getchar(); for(i=j=0; _(26)_;i+) if (_(27)_) sj=si; _(28)_; sj =
8、0 ; puts(s); 【选项】(25) A #include B #include C#define gets(s) D #include gets(s) (26) A i=80 B si != 0C j=80 D sj != 0名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 3 页,共 7 页 - - - - - - - - - 学而不思则惘,思而不学则殆( 27)Asi = = c B si != c C si = = cD si != c(28) A i+
9、 B si + C j+ D sj+ 3【程序说明】某班学生(不超过50 人) ,每个学生有学号、姓名、平时成绩、期末考试成绩和总评成绩(总评成绩=平时成绩 *30%+ 期末考试成绩*70% ) ,从文件 score.dat中读入所有入学生数据(包括学号、 姓名、平时成绩和期末考试成绩),计算出每个同学的总评成绩。【程序代码】#include struct student char id10; char name10; int score1;/* 平时成绩*/ int score2;/* 期未成绩 */ float final;/* 总评成绩 */ ; int main() int i=0,n
10、; FILE *fp; (29)_; fp = (30); while (!feof(fp) fscanf(fp,%s%s%d%d, (31)); i+; n = i; for (i=0; i n; i+) datai.final = _ (32)_; return 0; 【选项】(29) A struct student data B student data C struct student data50 D student data50 (30) A fopen(file, r) B fopen( “ score.dat” , r) C fopen(file, r) D fopen(sc
11、ore.dat, r) (31) Adatai.id,datai.name, &(datai.score1), &(datai.score2) B &datai.id, &datai.name, &(datai.score1), &(datai.score2) C datai.id,datai.name, datai.score1, datai.score2 D &(datai.id),&(datai.name), datai.score1, datai.score2 (32) A &datai.score1 *0.3+&datai.score2*0.7 B (datai.score1 *30
12、+datai.score2*70)/100 C datai.score1 *0.3+datai.score2*0.7 D score1 *0.3+.score2*0.7 4【程序说明】将字符串b 复制到字符串a 中去。【程序代码】名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 4 页,共 7 页 - - - - - - - - - 学而不思则惘,思而不学则殆#include void scopy (char *s, char *t)/* t复制到 s*/ int i
13、=0; while (_(33)_) _(34)_; int main() char a20, b10; scanf(“ %s” , b); scopy (_(35)_); puts(a); 【选项】(33) A si != 0B si =(ti != 0)C (si=ti) != 0D si =ti != 0(34) A i+ B *t+ C *s+ D s+, t+ (35) A a20, b10 B a, b C a, b D &a, &b 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - -
14、 - - - - - - 第 5 页,共 7 页 - - - - - - - - - 学而不思则惘,思而不学则殆四、 程序阅读题(本题共20 分,每小题 5 分)阅读下列程序并写出运行结果。1【程序】#include int main() int t=0,s=0, i; for(i=0;i=4;i+) t = i + 10*t; s = s + t; printf(s=%dn, s); 2【程序】#include int main() int a, b, c; scanf(%d%d, &a, &b); c = a%b; while (c!=0) printf(b=%dn, b); a = b;
15、 b = c; c = a%b; printf(b=%dn, b); 键盘输入96 36 后,请写出程序运行结果。3【程序】# include void swap1(int *x,int *y) int temp; temp=*x; *x=*y; *y=temp; void swap2(int *x, int *y) int *temp; temp=x; x=y; y=temp; void swap3(int x, int y) int temp; temp = x; x=y; y=temp; void main() int a,b,c,temp; a=10;b=15;c=25; if(ab)
16、 swap1(&a,&b); printf(a=%2d,b=%2d,c=%2dn,a,b,c); if(ac) swap2(&a,&c); printf(a=%2d,b=%2d,c=%2dn,a,b,c); if(bc) swap1(&b, &c); printf(a=%2d,b=%2d,c=%2dn,a,b,c); if(bc) swap2(&b,&c); printf(a=%2d,b=%2d,c=%2dn,a,b,c); if(bc) swap3(b,c); printf(a=%2d,b=%2d,c=%2dn,a,b,c); 4【程序】#include int x=10; void f1(
17、) int x=8; x=+1; printf(f1:%dn,x); void f2() x=x+1; printf(f2:%dn,x); int main() x=2; printf(main:%dn,x); f1(); f2(); int x=5; f1(); f2(); 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 6 页,共 7 页 - - - - - - - - - 学而不思则惘,思而不学则殆五、 程序设计题(本题共20 分)(1)编写程序,输入一字符串(长度80) ,统计其中大写字母、小写字母、空格、数字以及其它字符各有多少个,并输出统计结果。(8 分)(2)编写一个程序,随机生成20 个 1-100 间的整数,对其中的偶数按从小到大顺序输出,且每行输出 5 个数。(12 分)名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 7 页,共 7 页 - - - - - - - - -