西 安 科 技 大 学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 页
因篇幅问题不能全部显示,请点此查看更多更全内容