1江南大学现代远程教育第一阶段测试卷考试科目:《计算机语言(C)》第1章至第6章(总分100分)时间:90分钟学习中心(教学点)批次:层次:专业:学号:身份证号:姓名:得分:一、选择题(每题2分,共30分)1.在C程序中,各语句之间(C)分隔。A.可以用,B.必须用,C.必须用;D.可以用,或;2.以下各标识符中,合法的用户标识符为(B)。A.pad和p#dB.scanf和a10C.void和max_1D._a*和temp3.设有变量说明“intx;”,则表达式”(x=4*5,x*5),x+25的值为(B)。A.20B.45C.100D.1254.数学式baeexx在C程序中对应的正确的表达式为(C)。A.exp(x)+exp(-x)/(a+b)B.(exp(x)十exp(-x))/a+bC.(exp(x)+exp(-x))/(a+b)D.(e^x+e^(-x))/(a+b)5.设整型变量x的当前值为3,执行以下循环语句后,输出的结果是(B)。doprintf(”%d\t”,x-=2);while(!(--x));A.0B.1-2C.30D.死循环,输出许多值6.设i,x都是int类型,则下面的for循环体可执行(C)次?for(i=0,x=0;i=9&&x!=876;i++)printf(*);A.9次B.876次C.10次D.无限循环7.在C语言中能代表逻辑“真”的是(D)。A.trueB.大于0的数C.非0整数D.非0的数8.下面程序段的输出结果是(B)。I=6;while(I0)printf(“%d”,I+1);A.789101112B.7777…无限循环C.123456D.一次也不循环9.下列表达式中,错误的是(A)。2A.4.0%2.0B.k+++jC.a+bc+d?a:bD.x*=y+2510.以下程序段的输出结果是(D)。inta=0,b=4,k=2;k=a+10||(++a0)&&(!(b--=0));printf(“%d,%d,%d”,k,a,b);A.1,1,3B.1,1,4C.1,0,3D.1,0,411.在C语言中(以16为PC机为例),5种基本数据类型的存储空间长度的排列顺序为(A)。A.charintlongint=floatdoubleB.char=intlongint=floatdoubleC.charintlongint=float=doubleD.char=int=longint=floatdouble12.putchar函数可以向终端输出一个(D)。A.整型变量表达式值B.实型变量值C.字符串D.字符或字符型变量值13.以下程序的输出结果是(D)。(注:□表示空格)main(){printf(“\n*s1=%15s*”,”chinabeijing”);printf(“\n*s2=%-5s*”,”chi”);}A.*s1=chinabeijing□□□*B.*s1=chinabeijing□□□**s2=**chi**s2=chi□□*C.*s1=*□□chinabeijing*D.*s1=□□□chinabeijing**s2=□□chi**s2=chi□□*14.判断char型变量c1是否为小写字母的正确表达式为(D)。A.‘a’=c1=‘z’B.(c1=a)&&(c1=z)C.(‘a’=c1)||(‘z’=c1)D.(c1=‘a’)&&(c1=‘z’)15.以下程序的输出为(A)。#includestdio.hmain(){intm=7,n=4;floata=38.4,b=6.4,x;x=m/2+n*a/b+1/2;printf(“%f\n”,x);}3A.27.000000B.27.500000C.28.000000D.28.500000二、填空题(每空3分,共45分)1.C程序包括三种结构,它们分别是顺序结构、选择结构。2.C语言中对于嵌套if语句规定else总是与其之前最近的不带else的if语句配对。3.写出判断闰年的条件表达式y%4==0&&y%100!=0||y%400==0?1:0(设年份用y表示)4.下列程序的输出是___8____。#includestdio.hmain(){inta=4,b=7;printf(%d\n,(a=a+1,b+a,b+1));}5.下面程序用来求出100—300和500—700之间的全部素数,要求每行输出10个数。判断素数的方法是:让某一个数m被2—m除,若能被其中一个整数整除,则m不是素数。#include”math.h”main(){intm,k,I,n=0;for(m=101;m=700;m=m+2){if(m300m500)&&;if(n%10==0)continue;k=sqrt(m);for(I=2;I=k;I++)if(m%I==0)printf(“\n”);if(breakIk){printf(“%d“,m);n=n+1;}}}6.下面程序的功能是求1-100之间偶数的和,请完善程序。main(){intj,sum=0;for(j=1;j=100;j++)if(j%2==0)sum=sum+j;printf(“结果为:%d”,sum);4}7.根据以下函数关系,对输入的每个x值,计算相应的y值,请完善程序。xyx000=x10x10=x201020=x40-0.5x+20main(){intx,c,m;floaty;scanf(“%d”,&x);if(x0)c=-1;elsec=x/10;switch(c){case–1:y=0;break;case0:y=x;break;case1:y=10;break;case2:case3:y=-0.5*x+20;break;default:y=-2;}if(y!=-2)printf(“y=%f”,y);elseprintf(“error\n”);}三、编程题(共25分)1.用100元钱买100只鸡,每只公鸡5元,每只母鸡3元,1元买3只小鸡。要求每一种鸡至少买一只,且每一种鸡必须是整只,编程求出各种鸡各买多少只。列出每一种购买方案并统计共有多少种买鸡方法。(15分)答:#includestdio.hmain(){inta,b,c,s=0For(a=1;a=19;a++)5For(b=1;b=33;b++){c=100-a-b;If((a*5+b*3+c/3==100){printf(”公鸡%d只,母鸡%d只,小鸡%d只\n”,a,b,c);s++;}}Printf(”共%d种方案\n”,s);}2.利用循环编程实现求n!,n从键盘上输入。(10分)Main(){intn,I,s=1;Printf(“请输入n\n”);Scanf(“%d”,&n);For(I=1;I=n;I++)S=s*I;Printf(“%d!的值为:%d”,n,s);