C语言程序设计模拟题(1)一、选择题(1)能将高级语言程序转换成目标语言程序的是__C____。A)调试程序B)解释程序C)编译程序D)编辑程序(2)__A____是构成C语言程序的基本单位。A)函数B)过程C)子程序D)子例程(3)可以在C语言中用做用户标识符的是__B___。A)voidB)as_b3C)forD)2cdefine_123-abcDoWORDIfcasSIG(4)若有以下类型说明语句:charw;intx;floaty,z;则表达式w*x+z-y的结果为__D___类型。A)floatB)charC)intD)double(5)main(){floatx=123.456;printf(%-5.2f\n,x);}以上程序输出的结果是___D___。A)123.4B)123.5C)123.45D)123.46(6)下面语句的输出结果是___C___。printf(%d\n,strlen(\t\\065\xff\n));A)14B)8C)5D)输出项不合法,无正常输出(7)下列程序的输出结果是__B____。main(){inta=0,b=0,c=0;if(++a0|++b0)++c;printf(\na=%d,b=%d,c=%d,a,b,c);}A)a=0,b=0,c=0B)a=1,b=1,c=1C)a=1,b=0,c=1D)a=0,b=1,c=1(8)下列程序的输出结果是__B____。main(){inti;for(i=1;i+1;i++){if(i4){printf(%d,i++);break;}}printf(%d,i++);}A)55B)56C)程序错误,没有输出D)循环条件永远为真,死循环(9)下列程序的输出结果是___A___。#defineA100main(){inti=0,sum=0;do{if(i==(i/2)*2)continue;sum+=i;}while(++iA);printf(%d\n,sum);}A)2500B)2050C)4D)0(10)下列程序的输出结果是__D____。main(){inti=3;switch(i){case1:case2:printf(%d,i);case3:case4:break;default:printf(OK);}}A)0B)3C)OKD)没有任何输出(11)下列程序执行后的输出结果是__C____。main(){intm[][3]={1,4,7,2,5,8,3,6,9};inti,k=2;for(i=0;i3;i++){printf(%d,m[k][i]);}}A)456B)258C)369D)789(12)设已定义i和k为int类型变量,则以下for循环语句__B____。for(i=0;k=-1,k=1;i++,k++)printf(****\n);A)判断循环结束的条件不合法B)是无限循环C)循环一次也不执行D)循环只执行一次(13)下面程序的输出结果是__C____。unsignedfun(unsignednum){unsignedk=1;do{k*=num%10;num/=10;}while(num);return(k);}main(){unsignedn=26;printf(%d\n,fun(n));}A)0B)4C)12D)无限次循环(14)已知字母A的ASCII码值是65,字母a的ASCII码值是97,以下程序__C____。main(){chara='A';intb=20;printf(%d,%o,(a=a+a,a+b,b),a+'a'-'A',b);}A)表达式非法,输出零或不确定值B)因输出项过多,无输出或输出不确定值C)输出结果为20,141D)输出结果为20,141,20(15)C语言函数返回值的类型是由___D___决定的。A)return语句中的表达式类型B)调用函数的主调函数类型C)调用函数时临时D)定义函数时所指定的函数类型(16)下列程序执行后输出的结果是__C____。intd=1;fun(intp){intd=5;d+=p++;printf(%d,,d);}main(){inta=3;fun(a);d+=a++;printf(%d\n,d);}A)8,12B)9,13C)8,4D)9,5(17)已知下面的程序段,正确的判断是_C____。#defineA3#defineB(A)((A+1)*a)inta=3;……X=3*(A+B(7));A)程序错误,不允许嵌套定义B)X=93C)X=81D)程序错误,宏定义不允许有参数(18)定义int*swap()指的是_B____。A)一个返回整型值的函数swap()B)一个返回指向整型值指针的函数swap()C)一个指向函数swap()的指针,函数返回一个整型值D)以上说法均错(19)以下程序段的输出结果是__B____。main(){chars1[10],s2[10],s3[10];scanf(%s,s1);gets(s2);gets(s3);puts(s1);puts(s2);puts(s3);}输入数据如下:(此处CR代表回车符)aaaCRbbbCRA)aaaB)aaaC)aaa\0bbb\0D)aaabbbBbbbbb(20)下述函数功能是__A____。intfun(char*x){char*y=x;while(*y++);returny-x-1;}A)求字符串的长度B)求字符串存放的位置C)比较两个字符串的大小D)将字符串x连接到字符串y后面(21)以下程序的输出结果是__A____。main(){charstr[12]={'s','t','r','i','n','g'};printf(%d\n,strlen(str));}A)6B)7C)11D)12(22)请读程序段:charstr[]=ABCD,*p=str;printf(%d\n,*(p+4));程序段的输出结果是__B____。A)68B)0C)字符’D’的地址D)不确定的值(23)若有定义:inta[4][10];,则以下选项中对数组元素a[i][j]引用错误的是___B___。(0=i4,0=j10)A)*(&a[0][0]+10*i+j)B)*(a+i)+jC)*(*(a+i)+j)D)*(a[i]+j)(24)设有以下语句:charstr1[]=string,str2[8],*str3,*str4=string;则__CD____不是对库函数的正确调用。A)strcpy(str1,HELLO1);B)strcpy(str2,HELLO2);C)strcpy(str3,HELLO3);D)strcpy(str4,HELLO4);(25)请读程序:#includestdio.h#includestring.hmain(){char*s1=AbCdEf,*s2=aB;s1++;s2++;printf(%d\n,strcmp(s1,s2));}上面程序的输出结果是__A____。A)正数B)负数C)零D)不确定的值(26)下面程序的输出是___A___。chars[]=ABCD;main(){char*p;for(p=s;ps+4;p++)printf(%s\n,p);}A)ABCDB)AC)DD)ABCDBCDBCABCCDCBABDDAA(27)以下程序输出的结果为___C___。main(){char*alpha[6]={ABCD,EFGH,IJKL,MNOP,QRST,UVWX};char**p;inti;p=alpha;for(i=0;i4;i++)printf(%s,p[i]);}A)ABCDEFGHIJKLB)ABCDC)ABCDEFGHIJKLMNOPD)AEIM(28)下面程序的输出结果是__A____。#includestdio.hmain(){char*p[]={BOOL,OPK,H,SP};inti;for(i=3;i=0;i--,i--)printf(%c,*p[i]);printf(\n);}A)SOB)SPC)SPOPKD)SHOB(29)以下程序的输出结果是__B____。#includestdio.hvoidprt(int*x,int*y,int*z){printf(%d,%d,%d\n,++*x,++*y,*(z++));}inta=10,b=40,c=20;main(){prt(&a,&b,&c);prt(&a,&b,&c);}A)11,42,31B)11,41,20C)11,21,40D)11,41,2112,22,4112,42,2011,21,4112,42,22(30)若一个外部变量的定义形式为staticintx;,那么,其中static的作用应该是__C____。A)将变量存储在静态存储区B)使变量x可以由系统自动初始化C)使x只能在本文件内引用D)使x的值可以永久保留(31)以下程序的输出结果是__B____。#includestdio.h#defineSQR(x)x*xmain(){inta,k=3;a=++SQR(k+1);printf(%d\n,a);}A)8B)9C)17D)20(32)下面是对宏定义的描述,不正确的是___C___。A)宏不存在类型问题,宏名无类型,它的参数也无类型B)宏替换不占用运行时间C)宏替换时先求出实参表达式的值,然后代入形参运算求值D)宏替换只不过是字符替代而已(33)已知小写字母a的ASCII码为97,大写字母A的ASCII码为65,以下程序的结果是___C___。main(){unsignedinta=32,b=66;printf(%c\n,a|b);}A)66B)98C)bD)B二、填空题(每空2分)(1)若有定义intm=5,y=2,则执行表达式y+=y-=m*=y后,y的值为【_____-16_________】。(2)若x和y都是double型变量,且x的初值为3.0,y的初值为2.0,则表达式pow(y,fabs(x))的值为【___8.0__________】。(3)设有chara,b;,若要通过a&b运算屏蔽掉a中的其他位,只保留第2位和第8位(右起为第1位),则b的二进制是【__10000010___】。(4)下列程序执行后输出的结果是【_______7__________】。f(inta){staticc=0;c=a+c++;return(c);}main(){inta=2,i,k;for(i=0;i2;i++)k=f(a++);printf(%d\n,k);}(5)下面程序执行后输出的结果是【_______2___________】。intm=13;intfun(intx,inty){intm=3;return(x*y-m);}main(){inta=7,b=5;printf(%d\n,fun(a,b)/m);}(6)下列程序执行后输出的结果是【_______12___________】。main(){intarr[10],i,k=0;for(i=0;i10;i++)arr[i]=i;for(i=1;i4;i++)k+=arr[i]+i;printf(%d\n,k);}(7)以下程序的输出结果是:【_____1,0________】。main(){inta[10]={1,2,3,4,5,6,7,8,9,0},*p;p=a;printf(%d,,*p);printf(%d\n,*(p+9));}(8)以下函数的功能是计算s=1+1/2!+1/3!+…+1/n!,请填空。doublefun(intn){doubles=0.0,fac=1.0;inti,k=1;for(i=1;i=n;i++){【_____k*k*i______】;fac=fac/k;s=s+fac;}}(9)下面程序的运行结果是【____x=11____________】。main(){unsignedinta=0112,x;x=a3;p