上学期C语言A卷考试(更正)

  • 格式:doc
  • 大小:156.50 KB
  • 文档页数:8

上学期C语言A卷考试(更正)————————————————————————————————作者:————————————————————————————————日期:装订线华南农业大学期末考试试卷(A卷)2015学年第1学期考试科目:C语言程序设计考试类型:(闭卷)考试考试时间:120 分钟学号姓名年级专业考生注意1、答案必须分别写在“机读卡”和“答卷”上,写在本试卷上不得分。

2、必须在机读卡和答卷上正确填写班级、学号、姓名等内容,否则没有考试成绩。

3、机读卡的学生代号区只需填写学号后10位。

4、考试结束时,“机读卡”、“答卷”和本试卷都要上交。

一、选择题(在机读卡上答题,本题共20小题,每小题2分,共40分)1. 请选出其中不合法的常量。

( )A. '8'B. 903uC. 65D. D2. C语言程序中对函数描述正确的是( )。

A. 除了main函数,函数相互之间可以嵌套定义,嵌套调用B. 函数不能嵌套定义,除了main函数,其他函数可以相互调用C. 函数相互之间可以嵌套定义,嵌套调用,递归调用D. 函数相互之间可以嵌套调用,但是不能调用自身3. 以下程序段中表达式的运行结果是()。

int i=3,j=5; char a='a';a=a+i,a+j;A. 105B. 102C. 73D. 784. 字符串"\\\tabcd\r\12\n" 在内存中所占的字节数为()。

A. 14B. 9C. 10D. 115. 设有如下变量定义:int i=3,j=5; float x=3.5,y=5.0;请问表达式i-=j*=x+y 的值是多少。

()A. 72B. -17C. -39D. -196. 能够实现对字符串"Dog" 进行正确赋值的操作是()。

A. char a[3]={ 'D', 'o', 'g'};B. char a[]="Dog";C. char a[3]={ "Dog"};D. char a[3]; s="Dog";7. 在以下给出的表达式中,与while(exp)中的(exp)不等价的表达式是()。

A.(!exp==0) B.(exp>0||exp<0) C.(exp= =0) D.(exp!=0)8. 执行语句scanf("%d%c%d",&a,&b,&c);时,使相关变量均能获得输入值的正确选项是()。

题号一二三四总分得分评阅人机读机读得分装订线A. 3a4B. 3 a 4C. 3,a,4D. 3回车a回车4回车9. 设int a=28153;则语句printf("%3d\n",a); 的输出结果是()。

A.281 B.153 C.28153 D.提示出错10. 下面程序段运行的结果是()。

int x=13, y=8, z=5;if (x>y>z)printf("right");elseprintf("wrong");A.提示出错B.right C.wrong D.rightwrong11. 运行完下面的C语言程序段后,k的值是()。

int k=5,m;m=k++;A. 4B. 5C. 6D. 712. 不能中断循环执行并立刻跳出循环体的语句是()。

A. breakB. continueC. returnD. goto13. C语言中,int类型的数据在内存中的存储形式是()。

A. ASCII码B. 原码C. 补码D. 反码14. 合法的数组定义是()。

A.int a[] = "hello!";B.int a[5]={0,1,2,3,4,5};C. char s = "hello!";D.char a[] = {'h','e','l', 'l', 'o', '! '};15.下面程序段的运行结果是()int x[3],i,j,k;for(i=0;i<3;i++) x[i]=0;k=2;for(i=0;i<k;i++)for(j=0;j<k;j++) x[j]=x[j]+1;printf("%d\n",x[1]);A.2 B. 1 C. 0 D. 316. 假定每个int类型的数据在内存中占4字节,数组ay定义为:int ay[10];若ay在内存中的起始地址是2010(十进制),则ay[2]的起始地址(十进制)是()。

A. 2012B. 2014C. 2018D. 202017. 下列程序段中,有错误的是()A.int main(){ float a=2.6,b;b=max(2.1,3.6)=a++;printf("%f",a+b);return 0;}B.int f2(int x){return (x>1?puts("Y"):puts("N"));}C.int f(){ int x;scanf("%d",&x);return x++,x+5;}D.void xchange(int x,int y){ int t;t=x;x=y;y=t;}装订线18. 对如下程序段执行流程描述正确的选项是()。

int k=20;do{ k=k-1;} while(k<10);A.循环体语句执行多次B.循环体不执行C.循环体执行一次D.循环体语句执行10次19. 设有宏定义命令如下:#define RES 3+5则表达式RES*5+20的值为()。

A. 60B. 48C. 45D. 3520. 有如下程序段,请问执行后的输出结果是()。

int i,j.k,sum;for (i=2;i<7;i++){ sum=1;for(j=i;j<7;j++)sum=sum+j;}printf("%d",sum);A.48 B.49 C.1 D.7二、判断题(在机读卡上答题,本题共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]。

( )14.在C程序中使用符号常量,能够增强程序的可读性,方便程序的修改。

( )15.所有逻辑运算符的优先级都高于关系运算符。

( )得分装订线16.定义带参数的宏时,无需指定类型,其参数也无需指定类型。

( )17.在if语句中,if后面的表达式可以是关系表达式与逻辑表达式,而不能是算术表达式。

( )18.一个函数必须有且只能有一个return语句。

( )19.example和Example是两个完全相同的标识符。

( )20.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整除)#include <stdio.h>int main()得分1.5CM装订线{int year,leap;scanf ("%d", (7) );if ( (8) ){ if ( year%100==0){ if( year%400==0) leap=1;else leap=0;}else (9) ;}elseleap = 0;if (leap)printf("%d is ", year);elseprintf("%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个学生的成绩,统计及格学生的个数并计算所有学生的平均分。