年级________;层次________;专业________;姓名________复习资料,仅供参考,补充整理打印,试后上交程序设计模拟题1一单项选择题1.C程序的基本单位是___C___A子程序B过程C函数D源程序文件2.若有以下说明,则___C___不是对strcpy库函数的正确的调用charstr1=”copy”,str2[10],str3=”hijklmn”,*str4,*str5=”abcd”;Astrcpy(str2,str1);Bstrcpy(str3,str1);Cstrcpy(str4,str1);Dstrcpy(str5,str1);3.C语言中,要求运算量必须是整形数据的运算符是___A___A%B/C*D!4.选出C语言的合法的变量名__D____A33aBa#bCab,cDddt35.以下说法正确的是:AA.预处理命令行都必须以#号开始B.预处理命令只能位于源程序的首部C.对预处理命令的处理是在执行过程中进行的D.每个C程序必须使用预处理命令#includestdio.h6.对于如下数据定义和scanf函数调用:inti1,i2;charc1,c2;scanf(%d%c%d%c,&i1,&c1,&i2,&c2);若使i1、c1、i2、c2的值分别为10、'C'、20、'D',正确的数据输入方式是__A____A10C20D回车B10C20D回车C10C20D回车D10C20D回车7.当定义一个结构体变量时系统分配给它的内存是:___A___A各成员所需内存量的总和B成员中占内存量最大者所需的容量C结构中第一个成员所需内存量D结构中最后一个成员所需内存量8.设有以下语句,则c的值用二进制表示为:__B____chara=3,b=6,c;c=(a∧b)2;A00011011B00010100C00011100D00011000二填空题1.设inta=10,则执行完语句a+=a-=a*a后,a的值是___0___。2.char*str;str=string;这种字符串赋值方式正确吗?___1___(正确填1,不正确填0)3.表达式3&4的值为____1___。4.C语言提供的构造类型的数据有:数组,结构体,__枚举型_。5.表达式0?(0?3:2):(10?1:0)的值为__1____。6.C语言程序中,若对函数类型未加显式说明,则函数的隐含类型为__int__类型。7.定义intj=1;执行while(j++4)后j的值为___5___。年级________;层次________;专业________;姓名________复习资料,仅供参考,补充整理打印,试后上交三程序填空题1.输出由’*’组成的倒三角图案,图案的行数n从键盘输入。如果行数n为6,则图案如图所示:*********************#includestdio.hmain(){inti,j,n;printf(Pleaseinputnumberofrows:);scanf(%d,&n);for(i=____0__;in;i++){for(j=0;j__n____;j++)putchar(ji?’’:’__*__’);putchar('\n');}}2.用起泡法将10个数组元素从小到大排序。main(){inti,j,t;staticinta[10]={5,7,4,2,3,6,1,0,,9,8};for(j=0;j9;j++){for(i=0;i______9-j;i++){if(a[i]a[_i+1_]){t=a[i];a[i]=a[i+1];a[i+1]=__t____;}}}for(i=0;i10;i++)printf(“%2d”,a[i]);}四改错题(下面每小题有三行程序存在错误,要求不改变程序的功能,指出出错语句,并写出完整的正确语句)1.本程序计算N×N二维整型数组全部元素的平均值(输出时保留一位小数)。行号程序01#includestdio.h02#defineN403floatfun(intarr[][N]);04main()05{年级________;层次________;专业________;姓名________复习资料,仅供参考,补充整理打印,试后上交06staticintaa[][N]={07{1,2,3,4},{4,5,6,7},08{10,11,12,13},{20,21,22,23}};09floatavr;10avr=fun(&aa);11printf(avr=%.1f,avr);12}13floatfun(intarr[][N])14{15inti,j;16ints;17floatav;18for(i=1;iN;i++)19for(j=0;j=N-1;j++)20s+=arr[i][j];21av=s/(N*N);22returnav;23}可能出错的程序语句的行号为:03、06、10、13、16、18、19、20,错误依次为:行号__10__应改为___________avr=fun(aa)________________。行号__16_应改为___________floats=0.0________。行号__18__应改为__________for(i=0;iN;i++)_____________。2.从键盘输入一行字符,然后删除字符串中的全部空格。例如,如果输入abcdefgh,则输出为abcdefgh。行号程序01#includestdio.h02main()03{04chars[81];05char*p1,p2;06printf(Pleaseenterastring:);07scanf(“%s”,s);08p1=p2=s;09while(*p1!='\0')10{11if(*p1!=’’)12{13*p2=*p1;14p2++;15}16p2++;17}18*p2='\0';19printf(Stringwithoutleadingblank:%s\n,s);年级________;层次________;专业________;姓名________复习资料,仅供参考,补充整理打印,试后上交20}可能出错的程序语句的行号为:05、07、08、09、11、13、16,错误依次为:行号__05__应改为_________char*p1,*p2;_________________________。行号__07__应改为_________gets(s);_______________________________。行号__16__应改为_________p1++;__________________________________。五阅读理解1.下面程序的输出结果为:___12,6___。main(){intx=1,i=1;for(;x50;i++){if(x10)break;if(x%2!=0){x+=3;continue;}x-=-1;}printf(“%d,%d\n”,x,i);}六程序设计题1.统计所有的三位整数中有多少个数的各位数字之积等于各位数字之和,并输出这些整数。2.编写一函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其它字符的个数,在主函数中输入字符串以及输出上述的结果。3.输入3个整数,按由小到大的顺序输出。(注:要求用指针方法处理)。解:1、main(){intn,a,b,c,sum=0;for(n=100;n1000;n++){a=n/100;b=(n-a*100)/10;/*该语句换成b=n/10-a*10;亦可*/c=n%10;if(a*b*c==a+b+c)printf(“Thenumberis%d\n”,n);sum++;}printf(“Thetotalnumberis%d”,sum);}2、intletter,digit,space,others;/*定义全局变量*/年级________;层次________;专业________;姓名________复习资料,仅供参考,补充整理打印,试后上交main(){intcount(charstr[]);/*函数声明*/chartext[80];gets(text);letter=0;digit=0;space=0;others=0;count(text);printf(“letter:%d,digit:%d,space:%d,others:%d\n”,letter,digit,space,others);}intcount(charstr[]){inti;for(i=0;str[i]!=’\0’;i++)if((str[i]=’a’&&str[i]=’z’||(str[i]=’A’str[i]=’Z’))letter++;elseif(str[i]=’0’&&str[i]=’9’)digit++;elseif(str[i]==’’)space++;elseothers++;}3、main(){intn1,n2,n3;int*p1,*p2,*p3;scanf(“%d,%d,%d”,&n1,&n2,&n3);p1=&n1;p2=&n2;p3=&n3;if(n1n2)swap(p1,p2);if(n1n3)swap(p1,p3);if(n2n3)swap(p2,p3);printf(“Theorderis:%d,%d,%d\n”,n1,n2,n3);}swap(int*p1,int*p2){intp;p=*p1;*p1=*p2;*p2=p;}年级________;层次________;专业________;姓名________复习资料,仅供参考,补充整理打印,试后上交程序设计模拟题2一单项选择题1.选出C语言的合法常量___B__A0fdB0xfdaLCe8D.e-42.选出合法的变量名__C____AautoB2_endsCTURBO_CD.month3.选出合法的字符串常量__B___。A’String’B”It\’saboy”C”C:\\x.txt”D”Hesaid,’Sorry!’”4.若a为一维整型数组的数组名,则对指针变量p的正确说明和初始化为BA.int*p=a[0];B.int*p=&a[0];C.int*p=*a;D.int*p=&a;5.对两个静态数组A和B进行如下初始化.staticcharA[]=”ABCDEF”;staticcharB[]={’A’,’B’,’C’,’D’,’E’,’F’};则下列叙述正确的是___D___。A.A和B完全相同B.A和B只是长度相同C.A和B不相同,A是指针数组D.A数组长度比B数组长6.以下说法错误的是BA.宏替换只是字符替换B.宏名必须用大写字母C.宏替换是在预处理时进行的D.程序中引用带参数的宏时,对参数的数据类型没有限制7.对于如下数据定义floatx,y;为了使x和y分别为1.23和4.56,输入如下内容:x=1.23,y=4.56回车则正确的scanf调用是DA.scanf("%f%f",&x,&y);B.scanf("%f,%f",&x,&y);C.scanf("x=%fy=%f",&x,&y);D.scanf("x=%f,y=%f",&x,&y);8.以下共用体类型和变量的定义,正确的是___C___。A.unionstudentB.union{intnumber,{intnumber,charname[20],charname[20],}s;};s;C.unionstudentD.unionstudent{intnumber;{intnumber;charname[20];charname[20];}s;};s;二填空题1.定义intx=10,y,z;执行y=z=x;x=y==z;后,变量x的值为____1___。年级________;层次________;专业________;姓名________复习资料,仅供参考,补充整理打印,试后上