第一题:选择题(1-18题每题1分;19-22题每题3分;总分数:30)1:用C语言编写的代码:(P6:如果要使C程序在一台计算机上执行,必须经过“编辑”源程序、“编译”和“链接”及调试运行,最后得到可执行程序。)A)可立即执行B)是一个源程序C)经过编译即可执行D)经过编译解释才能执行2:对C语言来说,下列标识符合法的是:(P33:C语言标识符的命名规则)A)x&yB)x1_C)1_yD)*1_x3:在C语言中,以下合法的字符常量是:P34A)‘\084’B)‘\x43’C)‘ab’D)“\0”4:下列运算符中优先级最高的是:P60A):B)&&C)+D)!=5:设x、y均为f1oat型变量,则以下不合法的赋值语句是:P51-2-3A)y=(x%2)/10;B)x*=y+8;C)x=y=0;D)++x;6:假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是:P58逗号表达式A)7B)8C)6D)27:已知charch=′C′;则表达式(ch=′A′&&ch=′Z′)?(ch+32):ch;的值是:P57条件表达式和P60混合运算考虑优先级A)AB)aC)CD)c8:已有定义intx;f1oaty;且执行scanf(%3d%f,&x,&y);语句,若从第一列开始输入数据12345678(回车),则x的值为:P45-6-7-8CA)12345B)123C)45D)3459:printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式:P45A)从左起输出该字串,右补空格B)按原字符长从左向右全部输出C)右对齐输出该字串,左补空格D)输出错误信息10:intx=10,y=20,z=30;if(xy)z=x;x=y;y=z;以上语句执行后,x,y,z的值是:A)x=10,y=20,z=30B)x=20,y=30,z=30C)x=20,y=30,z=10D)x=20,y=30,z=2011:程序段for(i=5;i;i--)for(j=0;j4;j++){语句}中,{语句}总的执行次数是:A)20B)25C)24D)3012:以下描述错误的是:A)C程序中,函数可以直接或间接的调用自己(递归)B)函数调用时,函数名必须与所定义的函数名字完全一致C)函数说明语句中的类型必须与函数返回值的类型一致D)实参数可以与形参个数不一致13:若有定义:inta[5]={1,2,3,4,5};则语句a[1]=a[3]+a[2+2]-a[3-1];运行后a[1]的值为:A)6B)5C)1D)214:不能把字符串:Hello!赋给数组b的语句是:A)charb[10]={‘H’,‘e’,‘l’,‘l’,‘o’,‘!’};B)charb[10];b=“Hello!”;C)charb[10];strcpy(b,“Hello!”);D)charb[10]=“Hello!”;15:若有说明:inta[3][4];则对a数组元素的正确引用是:A)a[2][4]B)a[1,3]C)a[1+1][0]D)a(2)(1);16:若有定义:int*p,a=4;p=&a;则以下均代表地址的是:A)a,pB)&a,pC)&a,*pD)a,*p17:设chars[10],*p=s;,下列表达式中,不正确的表达式是:A)p=a+5B)s=p+sp205C)*p=s[0]D)s[2]=p[4]p20818:关于文件理解不正确的为:A)C语言把文件看作是字节的序列,即由一个个字节的数据顺序组成;B)所谓文件一般指存储在外部介质上数据的集合;C)系统自动地在内存区为每一个正在使用的文件开辟一个缓冲区;D)每个打开文件都和文件结构体变量相关联,程序通过该变量中访问该文件;19:#includestdio.hmain(){inta=1,b=2,c=3,d=0;if(a==1&&b++==2)if(b!=2||c--!=3)printf(“%d,%d,%d\n”,a,b,c);elseprintf(“%d,%d,%d\n”,a,b,c);elseprintf(“%d,%d,%d\n”,a,b,c);}程序运行后的输出结果是:A)1,2,3B)1,3,2C)1,3,3D)3,2,120:#includestdio.hmain(){inta,b;for(a=1,b=1;a=100;a++){if(b=20)break;if(b%3==1){b+=3;continue;}}printf(%d\n,a);}程序的运行结果是:A)7B)8C)9D)1021:inti=0,a[]={3,4,5,4,3};do{a[i]++;}while(a[++i]5);for(i=0;i5;i++)printf(%d,a[i]);上面程序段的运行结果是:A)45654B)34543C)45554D)4554322:#includestdio.hP291、P293main(){FILE*fp;charstr[256];fp=fopen(test.txt,r+);if(fp==NULL){printf(Fileopenerror!);return;}fscanf(fp,%s,str);fclose(fp);}以上程序运行后,屏幕显示Fileopenerror!,则可能的原因是:A)当前工作目录下有test.txt文件,但test.txt文件太小B)test.txt文件不能关闭C)当前工作目录下没有test.txt文件D)当前工作目录下有test.txt文件,但test.txt文件太大第二题:C语言编程题(总题数:4总分数:70)(以下试题如要求有运行结果,则必须将结果复制,如无具体运行结果,则不需要复制)1:输出500至1000之间的所有素数之和.(15分)#includestdio.h#includemath.hmain(){inti,count=0;doublesum=0.0;for(i=500;i=1000;i++){if(prime(i)==1){sum+=i;count++;}}printf(500--1000间素数之和:%.2lf\n,sum);}intprime(intval){intre=0;inti;for(i=2;i=sqrt(val);i++)if(val%i==0)break;if(isqrt(val))re=1;elsere=0;returnre;}2:求分数序列:2/1,3/2,5/3,8/5,13/8……的前20项的和值并输出(15分)#includestdio.h#includemath.hmain(){inti,count=0;doublesum=0.0;inta1,a2,b1,b2,a3,b3;a1=2;//第1项分子a2=3;//第2项分子b1=1;//第1项分母b2=2;//第2项分母sum=sum+a1*1.0/b1;printf(%d/%d+,a1,b1);sum=sum+a2*1.0/b2;printf(%d/%d,a2,b2);for(i=3;i=20;i++){a3=a1+a2;b3=b1+b2;printf(+%d/%d,a3,b3);sum=sum+a3*1.0/b3;a1=a2;b1=b2;a2=a3;b2=b3;}printf(=%.2lf\n,sum);}3:编写一个判断素数的函数。调用该函数,计算并输出区间[1000,2000]内所有素数的平均值,结果保留2位小数。(20分)#includestdio.h#includemath.hmain(){inti,count=0;doublesum=0.0;for(i=1000;i=2000;i++){if(prime(i)==1){sum+=i;count++;}}sum=sum/count;printf(1000--2000间素数之平均:%.2lf\n,sum);}intprime(intval){intre=0;inti;for(i=2;i=sqrt(val);i++)if(val%i==0)break;if(isqrt(val))re=1;elsere=0;returnre;}4:求一维数组中最大的三个元素的平方根之和,A数组的数据位56,78,98,45,58,34,12,90,26,88(思路:先排序确定最大三元素位置,然后计算输出)。。(20分)#includestdio.h#includemath.hmain(){inti,j,temp;inta[10]={56,78,98,45,58,34,12,90,26,88};doublesum=0.0;for(i=0;i10-1;i++){for(j=0;j10-i-1;j++){if(a[j]a[j+1]){temp=a[j];a[j]=a[j+1];a[j+1]=temp;}}}for(i=0;i10;i++)printf(%4d,a[i]);printf(\n);for(i=0;i3;i++)sum+=sqrt(a[i]);printf(最大3数平方根=%.2lf\n4d,sum);}