《C语言程序设计》试题(闭卷)
得分 评卷人
一、单项选择题:(每题 2 分,共 30 分)
1. C 语言规定:在一个源程序中,main函数的位置_____________。
A. 必须在最开始 B. 必须在系统调用的库函数的后面 C. 可以任意 D. 必须在最后 2. 下列说法中错误的是_____________。
A. 主函数可以分为两个部分:函数头和函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行
3. 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将_____________。
A. 生成目标文件 B. 生成可执行目标文件 C. 输出运行结果 D. 自动保存源文件
4. 以下选项中,不正确的 C 语言浮点型常量是_____________。
A. 160. B. 0.12 C. 2e4.2 D. 0.0 5. 以下用户标识符中,合法的是_____________。
A. int B. nit C. 123 D. a+b
6. 算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为_____________。
A. 算术运算、关系运算、赋值运算 B. 算术运算、赋值运算、关系运算 C. 关系运算、赋值运算、算术运算
.
.
D. 关系运算、算术运算、赋值运算
7. 设整型变量 m,n,a,b,c,d 均为1,执行 (m=a>b)&&(n=c>d)后, m,n 的值是_____________。
A. 1,1 B. 0,1 C. 1,0 D. 0,0 8. sizeof (char)的结果值是_____________。
A. 4 B. 2 C. 1 D.出错
9. 设a 为整型变量,不能正确表达数学关系:10A. 10B. a= =11|| a= =12 || a= =13 || a= =14 C. a>10 && a<15 D. !(a<=10) && !(a>=15) 10. 要为字符型变量 a赋初值,下列语句中哪一个是正确的_____________。 A. char a=\"3\"; B. char a=’3’; C. char a=%; D. char a=*; 11. 设有定义:char s[12] = \"STRING\" ; 则printf( \"%d\\n\的输出是_____________。 A. 6 B. 7 C. 11 D. 12 12. 合法的数组定义是( )。 A. int a[3][ ]={0,1,2,3,4,5}; B. int a[ ][ ] ={0,1,2,3,4}; C. int a[2][3]={0,1,2,3,4,5,6}; D. int a[2][3]={0,1,2,3,4,5,}; 13. 函数在定义时,省略函数类型说明符,则该函数值的类型为 。 A. void B. int C. float D. double 14. 若有定义:int x,*pb;以下正确的赋值表达式是___________。 A. pb =&x B. pb =x . . C. *pb =&x D. *pb =*x 15. 有以下说明和定义语句(int在内存中占4B) Union Student { char name[20]; int age; float scor[3];}st; 则sizeof(st)的值为_____________。 A.4 B. 12 C. 20 D. 36 得分 评卷人 二、判断题:(每题 1 分,共 10 分) 1. C语言中,源程序的基本单位是子函数。( ) 2. C是一个结构化的程序设计语言。( ) 3. 运算符“%”要求两个操作数都是整型。( ) 4. 变量名是由字母、数字、下划线构成的,长度不限。( 5. 条件运算符是一个三目运算符。( ) 6. 一维数组的下标在任何情况下,都不可以省略。( )7. 循环结构中,执行continue语句表示结束整个循环。( 8. 数组的下标必须是整型常量或常量表达式。( ) 9. putchar()函数的作用是输出一个字符串。( ) 10. 函数类型省略,系统会默认为void。( ) 得分 评卷人 三、程序填空:(每空3分,共 18 分) 1. 求m和n的最小公倍数 #include . ) ) . { int m,n,i; printf(\"请输入两个整数m和n:\\n\"); scanf(\"%d,%d\ for(______________________;i++) if(_________________________) { } } 2. 求 1+1/2+1/3+……+1/100 #include int i; float s; printf(\"%d和%d的最小公倍数为:%d\\n\_________________________ _____________________________ } 得分 评卷人 for(_______________________________) _____________________________ printf(\"1+1/2+1/3+……+1/100的值为:%.2f\\n\ 1. 四、程序分析题:(每题6 分,共 12 分) #include void f1( int x, int y, int z ) . . { float y1,y2; y1=(-y+sqrt( z )) /(2.0*x); y2=(-y-sqrt( z )) /(2.0*x); printf(\"y1=%.2f y2=%.2f\\n\} void f2(int x, int y) { printf(\"y1=y2=%.2f\\n\} void f3( ) { printf(\"no\\n\"); } void main() { int a,b,c,d; printf(\"please input :a,b,c\\n\"); scanf(\"%d,%d,%d\ d=b*b-4*a*c; if(d>0) f1( a,b,d); else if(d==0) f2(a,b); else f3(); } 程序功能: 程序输入: 1,-6, 8 程序执行结果: 2. #include . . #define M 3 #define N 4 void main () { int a[M][N],b[N][M],i,j; printf(\"请输入矩阵a:\\n\"); for(i=0;i printf(\"矩阵b:\\n\"); for(i=0;i } 程序功能: 输入数据: 1 5 7 9 3 6 8 2 4 7 1 8 执行结果: 得分 评卷人 五、算法设计与程序实现(每题15分,共 30 分) . . 注意:算法要求写在试卷上。 1. 设计一个简单的超市收银系统。(输入商品购买的数量和单价,显示总付款、实付 款与找零) 2. 求1000以内的完数,并统计个数。 . . 参 一、单项选择题:(每题2 分,共 30 分) 1. C 2. D 3. A 4. C 5. B 6. A 7. D 8. C 9. A 10.B 11.A 12. D 13.B 14.A 15.C 二、判断题:(每题 1 分,共10 分) 1.× 2. √ 3. √ 4. × 5. √ 6. × 7. × 8. √ 9. × 10. × 三、程序填空题:(每空3 分,共18分) 1. i=m;i<=m*n i%m= =0 && i%n= =0 break; 2. s=1; i=2;i<=100;i++ s=s+1.0/i; 四、程序分析题:(每题6 分,共12分) 1.程序功能:一元二次方程求解。 程序执行结果:y1=4,y2=2 2.程序功能:矩阵转置。 程序执行结果: 1 3 4 5 6 7 7 8 1 9 2 8 五、算法设计与程序实现:(每题15分,共30分) 1. 算法: S1:输入商品的单价price和购买数量m; S2:若price或m为0,则执行s6; S3:求价格之和。sum=sum+price*m; S4:求商品数量之和。count=count+m; S5:执行s1; S6:输出购买商品的数量count和总额t_price; . . S7:输入实付款money; S8:输出找零change=money-t_price 算法: #include float price,t_price=0,money,change; printf(\"请输入购买商品的单价和数量:\\n单价 数量\\n\"); do{ scanf(\"%f %d\ if(price==0||m==0) break; t_price=t_price+m*price; count=count+m; }while(1); printf(\"\\n\\n\\n********************\\n\"); printf(\"购买商品:%d 个 应付款:%.2f\\n\ printf(\"实付款:\"); scanf(\"%f\ change=money-t_price; printf(\"找零:%.2f\\n\} 2. 算法: S1:x初始化,x=1; S2:求x的因子; S3:求x的因子之和sum; S4:若sum与x相等,则x为完数,并将x输出; S5:因子个数累加,count++; S6:x自增,x++; S7:若x<=1000,则执行s2; . . S8:输出完数的总个数count; 程序: #include int x,i,sum,count=0; for(x=1;x<=1000;x++) { sum=0; for(i=1;i if(sum==x) { } count++; printf(\"%d \ } printf(\"\\n\\n1000之内的完数共有%d个\\n\} . 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- yrrf.cn 版权所有 赣ICP备2024042794号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务