您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > C程序设计(谭浩强第四版)试卷7-试卷及答案
一、单项选择题(20题,每题2分,共40分)1.一个C语言程序是由组成的。A.主程序B.子程序C.函数D.过程2.判断char型变量c1是否为小写字母的最简单且正确的表达式为。A.'a'=c1='z'B.(c1=a)&&(c1=z)C.('a'=c1)||('z'=c1)D.(c1='a')&&(c1='z')3.为了判断两个字符串s1和s2是否相等,应当使用。A.if(s1==s2)B.if(s1=s2)C.if(strcpy(s1,s2))D.if(strcmp(s1,s2)==0)4.设a,b都是int型变量,则表达式:(a=2,b=5,ab?a++:b++,a+b)的值为。A.7B.8C.9D.25.设x、y和t均为int型变量,则以下语句:t=x;x=y;y=t;的功能是。A.把x和y按从大到小排列B.把x和y按从小到大排列C.无确定结果D.交换x和y中的值6.下面标识符中,合法的用户标识符为。A.P#AdB.12aC.charD._int7.循环语句while(!E);中的表达式!E等价于。A.E!=0B.E!=1C.E==0D.E==18.设有以下语句,则不是对a数组元素的正确引用,其中0≤i10。inta[10]={0,1,2,3,4,5,6,7,8,9};int*p=a;供选择的答案是:A.a[p-5]B.*(&a[i])C.p[i]D.*(a+i)9.若用数组名作为函数调用的实参,传递给形参的是。A.数组的首地址B.数组第一个元素的值C.数组中全部元素的值D.数组元素的个数10.下面四段程序中,不是死循环的程序段是。──────—───┬───────────────A.inti=100;C.intk=0;while(1)do{++k;{i=i%100+1;}while(k=0);if(i100)───────────────break;D.ints=3379;}│while(s);──────────┤s++;B.for(;;);──────────┴───────────────11.在一个文件中定义的全局变量的作用域为。A.本程序的全部范围;B.本文件的全部范围;C.函数内的全部范围;D.从定义该变量的位置开始到文件结束。12.下面的程序执行后,文件test.t中的内容是。#includestdio.h#includestring.hvoidfun(char*fname,char*st){FILE*myf;inti;myf=fopen(fname,w);for(i=0;istrlen(st);i++)fputc(st[i],myf);fclose(myf);}main(){fun(test.t,newworld);fun(test.t,hello,);}A)hello,B)newworldhello,C)newworldD)hello,world13.若有以下定义和语句inta=3,b=4,*q,*w,*p;p=&a;q=&b;w=q;q=NULL;则以下选项中错误的语句是。A*p=a;Bw=p;C*q=0;D*p=*w;14.以下语句中,指针s所指字符串的长度为。char*s=”\\Hello\tWorld\n”;A.13B.12C.14D.1015.若调用一个函数,且此函数中没有return语句,则正确的说法是:该函数。A.没有返回值B.返回若干个系统默认值C.能返回一个用户所希望的函数值D.返回一个不确定的值16.有以下程序main(){intm[][3]={1,4,7,2,5,8,3,6,9};inti,j,k=2;for(i=0;i3;i++)printf(“%d”,m[k][i]);}执行后输出结果是A.456B.258C.369D.78917.下列程序的输出结果为。#defineSQR(x)x*xmain(){inta=10,k=2,m=1;a/=SQR(k+m);printf(“%d\n”,a);}A.1B.8C.2D.918.设有以下程序段:chara[]=”study”,*p;p=a;printf(“%d”,*(p+5));执行后的结果为:A、111B、0C、104D、不确定19.设有下列程序段,则scanf函数调用语句中对结构体变量成员的不正确引用为。structstudent{charname[20];intage;charsex;}stu[5],*p;p=stu;A.scanf(%s,stu[0].name);B.scanf(%d,p-age);C.scanf(%c,&(p-sex));D.scanf(%d,&stu[0].age);20.已知staticinta[]={5,4,3,2,1},*p[]={a+3,a+2,a+1,a},**q=p;则表达式:*(p[0]+1)+**(q+2)的值是。A.5B.4C.6D.7二、程序填空题(每空2分,共20分)1、求1+1/2+1/4+1/6+···+1/100的值。#include“stdio.h”main(){inti=2;floatsum;_______________;while(i=100){sum=____________;__________________;}printf(“sum=%f“,sum);}2、以下程序的功能是:从键盘输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。main(){floatx[1000],sum=0.0,ave,a;intn=0,i;printf(“Entermark:\n”);scanf(“%f”,&a);while(a=0.0&&n1000){sum=sum+a;x[n]=______;n++;scanf(%f,_______);}ave=________;printf(“Output:\n”);printf(“ave=%f\n”,ave);for(i=0;in;i++)if(_________)printf(%f\n”,x[i]);}4、将输入的百分制成绩转换成相应的等级。100—90分为A,89—80分为B……60分以下为E。main(){intscore,temp;chargrade;scanf(%d,&score);if(score==100)temp=9;elsetemp=__________;switch(______){case9:grade='A';break;case8:grade='B';break;case7:grade='C';break;case6:grade='D';break;______________}printf(Score=%dGrade=%c\n,score,grade);}三、程序阅读题(每题4分,共20分)1、以下程序运行后,输出结果是_______。#includestdio.hmain(){charch='A';intx=8;while(ch='H'){printf(%c,,ch);ch+=2;}printf(\n);do{x--;if(x%3==0)continue;printf(%d,,x);}while(x0);}2、以下程序运行后,输出结果是_______。intfunc(inta,intb){staticintm=0,i=2;i+=m+1;m=i+a+b;return(m);}main(){intk=4,m=1,n;n=func(k,m);printf(“%d,”,n);n=func(k,m);printf(“%d”,n);}3、下面程序的运行结果是:。voidswap(int*a,int*b){int*t;t=a;a=b;b=t;}main(){intx=3,y=5,*p=&x,*q=&y;swap(p,q);printf(“%d,%d\n”,*p,*q);}4、下面程序的运行结果是:。#includestdio.hmain(){inti,j;charch;for(i=1;i5;i++){for(j=1;j20-i;j++)printf();ch='A';for(j=1;j=2*i;j++)printf(%2c,ch++);printf(\n);}}5、以下程序运行后的输出结果是。intfunc(inta,intb){return(a+b);}main(){intx=2,y=5,z=8,r;r=func(func(x,y),z);printf(%d\n,r);}四、编程题(三题中任选两题,每题10分,共20分,)1、用递归方法求n!。2、从键盘输入十个数,按升序排列后输出排序的结果,请按以下要求完成,要求:1)、必须用主、子函数调用完成程序。2)、其中十个数的输入及排序后的结果输出在主函数中实现。3)、排序功能在子函数中实现。3、从键盘输入一串字符,对其中的的字母,数字及其他字符的数目进行统计,并输出统计结果,方法不限。A卷参考答案一.单项选择题(20题,每题2分,共40分)1.C2.D3.D4.B5.D6.D7.C8.A9.A10.C11.D12.A13.C14.A15.D16.C17.C18.D19.B20.A二、程序填空题(每空2分,共20分)1、sum=1.0或sum=1;sum+1.0/i,i=i+2;2、a、&a、sum/n、x[i]ave3、(score-score%10)/10;或score/10,temp,default:grade='E';三、程序阅读题(每空2分,共20分)1、A,C,E,G,7,5,4,2,1,2、8,173、3,54、ABABCDABCDEFABCDEFGH5、15四、编程题(20分,任选2题,每题10分)1、main()结构正确1分{intn,t;变量及函数说明正确2分longfact(int);scanf(%d,&n);输入正确1分t=fact(n);调用语句正确1分printf(\n%d,t);}longfact(intn)函数类型及形参正确1分{longs;if(n==1)s=1;递归公式1正确1分elses=n*fact(n-1);递归公式2正确2分returns;返值正确1分}2、main()结构正确1分{inta[10],i;变量定义及函数说明正确2分voidsort(intb[]);for(i=0;i10;i++)输入正确1分scanf(“%d”,&a[i]);sort(a);函数调用及参数传递正确1分printf(\n);for(i=0;i10;i++)输出正确1分printf(%d,,a[i]);}voidsort(intb[])结构正确1分{inti,jfor(i=0;i9;i++)排序正确3分for(j=9;ji;j--)if(a[j]a[j-1])t=a[j],a[j]=a[j-1],a[j-1]=t;}3、#includestdio.hmain()结构正确1分{charstr[100],*st;intd,x,s,q;zm=sz=qt=0;变量定义及初始值正确1分gets(str);输入正确1分for(st=str;*st!='\0';st++)循环参数参数设置正确2分if(*st='a'&&*st='z'||*st='A'&&*st='Z')zm=zm+1;elseif(*st='0'&&*st='9')sz++;else++qt;统计正确3分printf(ZM=%d,SZ=%d,QT=%d,zm,sz,qt)输出正确2分
本文标题:C程序设计(谭浩强第四版)试卷7-试卷及答案
链接地址:https://www.777doc.com/doc-4612963 .html