您的当前位置:首页正文

C语言期末考试试题及标准答案西安科技大学

来源:画鸵萌宠网
西 安 科 技 大 学2011-2012学 年 第 2学 期 期 末(中)考 试 试 题(卷) 科 目 试卷类型 C语言期终考试试题 考试性质 考查 命题 朱宁洪 自动化1101-05 审批 成绩 6.C语言规定,函数返回值的类型是由 D 。 A 考试地点 学生班级 A。return语句中的表达式类型所决定. B。调用该函数时的主调函数类型所定决. C。调用该函数是系统时决定。 D。在定义该函数时所指定的函数类型所决定. 7.若用数组名作为函数调用的实参传递给形参的是 A 。 A.数组的首地址。 B.数组第一个元素的值. C.数组中全部元素的值. D。数组元素的个数。 8。下面不是C语言合法标识符的是 D A.fine5 B.flag C。_score D.&i 9。下面不是C语言关键字的是 A A.Do B.void C。volatile D。unsigned 10。下面不正确的字符串常量是 A A.’file' B.”12'12” C.”0” D。”while\" 二.填空(每空2分,共20分) 1.C语言中函数头给出函数的特征描述,包括函数的 属性 、类型、名字、参数及参数类型。 2.有int x ,y , z;且x=3。2,y=4.2,z=2,则表达式z=(x+y)/z的值为 3 . 3.有int x=2 ,y=3;且y += (x++),则x=3, y= 5 。 一.选择题(每题2分,共20分) 装 订 线 装 订 线 以 内 不 准 作 任 何 标 记 装 订 线 1。以下叙述不正确的是 D . A。一个C源程序可有一个或多个函数组成。 B。一个C源程序必须包含一个main函数. C。C程序的基本组成单位是语句。 D。在C程序中,注释说明只能位于一条语句的后面。 2。根据定义和数据的输入方式,输入语句的正确形式为 B A.scanf(“%f,%f”,&f1,&f2) B. scanf(“%f%f”,&f1,&f2); C。 scanf(“%3。2f%2。1f”,&f1,&f2); D. scanf(“%3。2f%2.1f”,&f1&f2); 3。下面正确的定义语句是 D A.int a[1][4]={1,2,3,4,5}; B。 double y[][3]= 0; C。 long b[2][3]={{1},{1,2},{1,2,3}}; D。float x[][3]={{1},{2},{3}}; 4。设有程序段 int k=3; while(k) k=k—1; 则下面描述中正确的是 A . A.while循环执行3次。 B。循环是无限循环 C。循环体语句一次也不执行 D。循环体语句执行一次 5.C语言规定,简单变量做实参时,它和对应形参之间的数据传达方式是 B 。 A.地址传递 B。单向值传递。 C.由实参传给形参再有形参传回给实参。 D。由用户指定传递方式。 院系: 班级: 姓名: 学号: 第 1 页 共 4 页

西 安 科 技 大 学20 -20 学 年 第 学 期 期 末(中)考 试 试 题(卷) 科 目 C语言期终考试试题 试卷类型 A 考试班级 自动化1101—05 三.写出下面程序的运行结果.(每题5分,共20分) 1.下面程序的运行结果是a=16,y=36. #include “stdio.h” main() { int a,y; a=2;y=0; do {a+=2;y+=a; if(y〉30) break;} while(a=14); printf(“a=%d,y=%d\\n”,a,y); } 2.下面程序的运行结果是 x=30,y= +30.00 。 main() {int x; float y=353; x=y/100;y=x*=10; printf(“x=%d,y=%+7。2f”,x,y); } 4.执行下面程序段后,k的值是 36 。 k=1;n=263; do {k*=n%10;n=n/10;} while(n); 装 订 线 装 订 线 以 内 不 准 作 任 何 标 记 装 订 线 5.下面程序段中循环体的执行次数是 3 次。 a=10;b=0; do {b=b+2;a-=2+b;} while(a〉=0); 6.在执行语句for(i=0;i〈3;i=i+2) printf(“%d”,i)时,表达式1执行了 1次,表达式2执行了3次。 7以下程序的运行结果是6 main() {int m=5; if(m++>5) printf(“%d”,m); else printf(“%d”,m--); } 8。 以下程序的运行结果是 m=3,n=5 #include ”stdio。h\" main() { int i=0,j=0,m=1,n=3; switch(i++) {case 0:m++; case 1:n++; case2: case 3: m++;n++;break; case 4: m++;n++; }printf(\"m=%d,n=%d\",m,n);} 院系: 班级: 姓名: 学号: 第 2 页 共 4 页

西 安 科 技 大 学20 —20 学 年 第 学 期 期 末(中)考 试 试 题(卷) 科 目 C语言期终考试试题 试卷类型 A 考试班级 自动化1101—05 四。根据题目的要求,补全下面的程序。(每空4分,共20分) 1.下面程序的功能是:可以通过指针输出数组a中任一行、任一列元素的值。请补全程序. #include ”stdio。h” main() { int a[3][5]={2,4,6,8,10,12,14,16,18,20,22,24,26,28,30}; int i,j; int (*p)[ (1) ]; p=a; printf(“Enter i,j;(0〈=i〈=2),(0<=j<=4):\"); scanf(“%d,%d\&i,&j); printf(“a[%d][%d]=%d\\n\",i,j,*( (2) )); } 接答:(1) 5 (2) *(p+i)+j 2.以下程序的功能是用枚举法求百鸡问题,公鸡五元一只,母鸡三元一只,小鸡一元两只;一百元要买一百只鸡,且需包含公鸡、母鸡和小鸡。问有几种方案可以实现。请填空(要求以较高的效率和合理的数值填空)。 #include ”stdio。h” main() {int n,i,j,k; n=0; for(i=1;i<=19;i++) for(j=1;j〈=(100—5*i)/3;j++) 3。 程序 main() {int a=3,b=5,c=2,d=1,x; if(a〈b) 装 订 线 装 订 线 以 内 不 准 作 任 何 标 记 装 订 线 x=c+d; else x=c-d; printf(”%d”,x); } 运行结果是 3 4.下面程序的运行结果是 x=11 。 #include ”stdio.h\" int x=10; int f(int y) {static int x=0; x+=y;return x;} main() { int x=6; {int x=5; f(x); }x=f(x); printf(\"x=%d\",x); } 院系: 班级: 姓名: 学号: 不 期期科 目 C语言期终考试试题 试卷类型 A 考试班级 自动化1101—05 解:#include “stdio。h\" 第 3 页 共 4 页 {k=100-i—j; if(k%2==0&&5*i+3*j+k/2==100) {n++; printf(\"n=%d,cock=%d,hen=%d,chick=%d\\n”,n,i,j,k); printf(”jine=%d\\n”,5*i+3*j+k/2); } } } 解答:(3) n,i,j,k (4) 5*i+3*j 3. 以下程序的功能是求10个数中的正整数之和,请补全程序。 #include \"stdio.h\" main() {int s=0,i,j; for(i=0;i<10;i++) {scanf(“%d\); if(j〈=0) (5) ; s+=j;} printf(“和=%4d”,s); } 解答:(5) continue 五.编程题:(每小题10分,共20分) 1.试编程判断输入的一个正整数是否既是5的又是7的倍数,若是则输出YES,否则输出NO. main() {int x; printf(“请输入一个正整数:”); scanf(“%d”,&x); if(x%5= =0&&x%7= =0) printf(“YES”); else printf(“NO\"); } 2。使用冒泡排序法将数组a[10]={1,3,2,5,6,7,4,9,10,8}中的数据进行从大到小进行排列,并输出排好的数组a[10]。 解:#include “stdio.h” main() {int a[10]={1,3,2,5,6,7,4,9,10,8}; int i,flag,t; do {flag=0; for(i=0;i<8;i++) if(a[i]〈a[i+1]) {t=a[i];a[i]=a[i+1];a[i+1]=t;flag=1;} } while(flag) for(i=0;i〈10;i++) printf(“排序后的数组:\”,a[i]); } 第 4 页 共 4 页

因篇幅问题不能全部显示,请点此查看更多更全内容

Top