华南农业大学期末考试试卷(A卷)
2015学年第1学期 考试科目: C语言程序设计 考试类型:(闭卷)考试 考试时间: 120 分钟
学号 姓名 年级专业
装 题号 得分 评阅人 一 机读 二 机读 三 四 总分 订考生注意 1、答案必须分别写在“机读卡\"和“答卷”上,写在本试卷上不得分。
2、必须在机读卡和答卷上正确填写班级、学号、姓名等内容,否则没有考试成绩。 3、机读卡的学生代号区只需填写学号后10位。
4、考试结束时,“机读卡”、“答卷”和本试卷都要上交。
线得分
一、选择题(在机读卡上答题,本题共20小题,每小题2分,共40分)
1。 请选出其中不合法的常量.( )
A。 ’8’
B。 903u
C. 65
D。 D
2. C语言程序中对函数描述正确的是( )。
A。 除了main函数,函数相互之间可以嵌套定义,嵌套调用 B。 函数不能嵌套定义,除了main函数,其他函数可以相互调用 C. 函数相互之间可以嵌套定义,嵌套调用,递归调用 D. 函数相互之间可以嵌套调用,但是不能调用自身 3. 以下程序段中表达式的运行结果是( )。
int i=3,j=5; char a=’a’; a=a+i,a+j; A。 105 A。 14 少.( ) A. 72
B。 —17
C. —39
D。 —19
6。 能够实现对字符串 \"Dog\" 进行正确赋值的操作是( )。
A。 char a[3]={ 'D’, 'o', 'g'}; C。 char a[3]={ ”Dog”};
B. char a[]=”Dog\";
D. char a[3]; s=\"Dog”;
B。 102 B. 9
C. 73
D. 78
4。 字符串 ”\\\\\abcd\\r\\12\\n” 在内存中所占的字节数为( ).
C。 10
D。 11
5。 设有如下变量定义:int i=3,j=5; float x=3。5,y=5.0;请问表达式 i—=j*=x+y 的值是多
7. 在以下给出的表达式中,与 while(exp)中的(exp)不等价的表达式是( )。
A.(!exp==0) B.(exp>0||exp〈0) C.(exp= =0) D.(exp!=0)
问卷共6页,第1页
8。 执行语句scanf(”%d%c%d\",&a,&b,&c);时,使相关变量均能获得输入值的正确选项是( )。
A。 3a4 A.281
B. 3 a 4 B.153
C。 3,a,4
C.28153
D. 3回车a回车4回车
D.提示出错
9. 设int a=28153;则语句 printf(”%3d\\n\); 的输出结果是( ).
10. 下面程序段运行的结果是( )。
int x=13, y=8, z=5; if (x>y>z) printf(\"right”); else printf(”wrong\"); A.提示出错 B.right
int k=5,m; m=k++; A. 4
B。 5
C. 6
D. 7
D. goto
D。 反码
12。 不能中断循环执行并立刻跳出循环体的语句是( )。
A。 break
B。 continue B。 原码
C。 return
13。 C语言中,int类型的数据在内存中的存储形式是( )。
A. ASCII码
C。 补码
14. 合法的数组定义是( )。
A.int a[] = ”hello!”; C。 char s = ”hello!\"; 15.下面程序段的运行结果是()
int x[3],i,j,k;
for(i=0;i<3;i++) x[i]=0; k=2;
for(i=0;i B。 1 C。 0 D。 3 16. 假定每个int类型的数据在内存中占4字节,数组ay定义为:int ay[10];若ay在内存中的起 始地址是2010(十进制),则ay[2]的起始地址(十进制)是( )。 A. 2012 B。 2014 C。 2018 D. 2020 17. 下列程序段中,有错误的是() A.int main() { float a=2.6,b; b=max(2.1,3。6)=a++; printf(”%f”,a+b); return 0; } C.int f() { int x; scanf(\"%d”,&x); return x++,x+5; } B.int a[5]={0,1,2,3,4,5}; D.char a[] = {'h',’e','l', 'l’, 'o’, '! '}; C.wrong D.rightwrong 11. 运行完下面的C语言程序段后,k的值是( ). B.int f2(int x) { return (x〉1?puts(\"Y\"):puts(”N”)); } D.void xchange(int x,int y) { int t; t=x;x=y;y=t; } 问卷共6页-第2页 18. 对如下程序段执行流程描述正确的选项是( )。 int k=20; do{ k=k-1; } while(k<10); B. 循环体不执行 D. 循环体语句执行10次 A. 循环体语句执行多次 C. 循环体执行一次 19. 设有宏定义命令如下: #define RES 3+5 则表达式RES*5+20的值为( )。 A. 60 int i,j.k,sum; { sum=1; } printf(\"%d\",sum); B.49 C.1 D.7 for(j=i;j〈7;j++) sum=sum+j; B. 48 C. 45 D. 35 20。 有如下程序段,请问执行后的输出结果是( ). 装订 for (i=2;i〈7;i++) 线 A.48 得分 二、判断题(在机读卡上答题,本题共20小题,每小题1分,共20分) 请用2B型铅笔涂答题卡,按题号顺序,正确的判断涂黑”A”、错误的判断涂黑”B” 1. 在 \"while(循环条件) {循环体}” ,这个循环语句中,循环体的内容有可能一次都无法运行。( ) 2. 在赋值表达式中,赋值号左边变量的数据类型和赋值号右边表达式之值的数据类型可以不 相同。( ) 3. 由于空语句和空函数都没有任何具体的操作,所以它们的存在是没有意义的。( ) 4. 一个函数的函数体内包括数据说明定义部分和执行语句部分,两部分不可以交叉出现. ( ) 5. 存储字符数组中的最后一个字符必须是’\\0’。( ) 6. 字符常量是用一对双撇号括起来的一个字符。( ) 7. 运算符“&”能被运用于变量和数组元素的运算。( ) 8. 执行语句“ for(i=1;i++<10; ); ”后变量i的值是10。( ) 9. 由于C程序执行的入口是main函数,所以定义main函数的位置必须在文件的开头。( ) 10. 如果定义的函数没有参数,则函数名后的圆括号可以省略。( ) 11. void play(int, int); 是一个合法的函数说明.( ) 12. for循环语句只能用于循环次数已经确定的情况。( ) 13. 已有定义int x[5];,则该定义语句说明x是具有5个元素的一维数组,且数组元素是x[1], x[2],x[3],x[4],x[5]。( ) 问卷共6页,第3页 14. 15. 16. 17. 18. 19. 20. 在C程序中使用符号常量,能够增强程序的可读性,方便程序的修改。( ) 所有逻辑运算符的优先级都高于关系运算符。( ) 定义带参数的宏时,无需指定类型,其参数也无需指定类型。( ) 在if语句中,if后面的表达式可以是关系表达式与逻辑表达式,而不能是算术表达式.( ) 一个函数必须有且只能有一个return语句。( ) example和Example是两个完全相同的标识符.( ) C语言本身不提供输入输出语句,因此输入输出操作需要通过调用库函数实现。( ) 得分 三、阅读程序填空题(请在答卷上答题,本题共7小题20空,每空1分,共20分) 1.以下程序运行后,如果从键盘上输入34567,则输出结果为:7 6 5 4 3 #include 〈stdio。h〉 int main() { int i,n; (1) ; while(n !=0) { i= n %10; (2) ; printf(\"%d \",i); } return 0; } 2. 以下程序功能为:输入一个整数m,判断它是否为素数,请填空。(判断整数m是否是素数的 标准是:除了1与m以外,m不能被1~m中其他整数整除) #include 〈stdio。h> int main() { int m, i; printf(\"m:\\n”); scanf(“%d”, (3) ); for(i=2;i〈m;i++) if(m%i == 0) (4) ; if ( (5) ) printf(”%d is a prime number\\n”, (6) ); return 0; } 3。 以下程序判断某一年是否闰年,请填空。(提示:闰年为该年能被400整除,或能被4整除且不 能被100整除) 问卷共6页-第4页 装订线 #include 〈stdio。h〉 int main() { int year,leap; scanf (”%d\", (7) ); if ( (8) ) { if ( year%100==0) { if( year%400==0) leap=1; else leap=0; } else (9) ; } else leap = 0; if (leap) printf(\"%d is ”, year); else printf(”%d is not ”, year); printf(”a leap year。\"); return 0; } 4. 以下程序实现:求数组10个元素中的最小值并输出。请填空完成。 #include 〈stdio.h〉 int main() { int a[10] = {8,4,57,62,94,3,9,97,5,12}; int i, min; (10) ; for(i=1; (11) ;i++) if(min 〉 a[i]) (12) ; printf(”min = %d\\n\", min); return 0; } 5。 以下程序读入10个学生的成绩,统计及格学生的个数并计算所有学生的平均分。请填空:#include 〈stdio.h> int main() { int i, count=0; float a[10],sum=0,avg; for(i=0;i〈10;i++) scanf(\"%f”,&a[i]); for(i=0;i<10;i++) { if (13) count++; (14) ; } 问卷共6页,第5页 avg=sum/10; printf(\"及格人数=%d,平均分=%f\); return 0; } 6。 以下程序的功能为:输入一组数的10个元素,输入结束后将最后一个元素移动到第一位,其 他元素则依次后移一个位置,请填空完善程序。 #include printf(”原数据序列为:\"); for(i=0;i〈=9;i++) scanf(\"%d\",&a[i]); (15) ; for(i=9;i>=1;i--) (16) ; a[0]=temp; printf(\"操作后数据序列为:\\n”); for(i=0;i〈=9;i++) printf(\"%d ”,a[i]); return 0; } 7. 以下程序输入一个字符,判断它是否为数字,如果是,输出\"DIGIT\",否则输出”NOT A DIGIT\", 请填空. #include 〈stdio。h> int main() { char ch; printf(\"\\n ch:\"); scanf(\"%c”, (17) ); if( (18) && (19) ) printf(”DIGIT”); else (20) ; return 0; } 得分 四、编写程序题(请在答卷上答题,本题共2小题,每题10分,共20分) 1。 输入三个字符串,比较其大小,并按从小到大的顺序,将这三个字符串原样输出。 2. 输出所有的水仙花数.所谓水仙花数是一个3位的正整数,其各位数字的立方之和等于这个数本身。例如,153是水仙花数,因为 (1)3+(5)3+(3)3=153。 输出格式要求: 一行一个、由小到大输出所有水仙花数 问卷共6页-第6页 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- jqkq.cn 版权所有 赣ICP备2024042794号-4
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务