




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGEword文档可自由复制编辑二、C选择题1.表达式“(a=4*5,b=a*2),b-a,a+=2”的值是()。A.2 B.20 C.22 D.422.以下是一个自定义函数的头部,其中正确的是()。A.intfun(inta[],b) B.intfun(inta[],inta)C.intfun(int*a,intb) D.intfun(chara[][],intb)3.以下数组声明语句中正确的是()。A.intn,a[n]; B.inta[];C.inta[2][3]={{l},{2},{3}}; D.inta[][3]={{l},{2},{3}};4.已知在某C语言编译系统中表达式sizeof(int)的值是2,如果希望将常量-70000正确地保存在一个变量a中,该变量声明语句应当是()。A.inta; B.longinta; C.unsignedinta; D.unsignedinta;5.以下声明语句中,用于声明一个行指针变量的是()。A.int*p(int); B.int*p; C.int(*p)[3]; D.int(*p)(int);6.在以下程序中,需要在fun函数中声明一个int型的变量,以下选项中()不能用做该变量的名字。#include<math.h>inty;main(){inta=1;fun(a);}intfun(intx){_______; /*int型变量声明语句位置*/… /*若干执行语句*/}A.x B.y C.fabs D.fun7.如有语句“intx,y=0,z,*p[3];p[0]=&x;p[1]=&y;p[2]=&z;”,以下表达式中有语法错误的是()。A.y++ B.p++ C.*++p[0] D.(*p[0])++8.设有声明语句“inta[3][3]={1,2,3,4,5,6,7,8,9};”,以下语句中除()外均能输出a[1][2]的值。A.printf("%d",*(*(a+1)+2)) B.printf("%d",*(&a[2][0]-1));C.printf("%d",*(a[1]+2)); D.printf("%d",*(a+1)[2]);9.已知有声明语句intx=8,则下列表达式中,值为2的是()。A.x+=x-=x B.x%=x-2 C.x>8?x=0:x++ D.x/=x+x10.以下关于函数的叙述中正确的是()。A.在函数体中可以o直接引用另一个函数中声明为static类别的局部变量的值B.在函数体中至少必须有一个return语句C.在函数体中可以定义另一个函数D.在函数体中可以调用函数自身11.若有声明语句“inta[10],b[3][3];”,则以下对数组元素赋值的操作中,不会出现越界访问的是()。A.a[-1]=0 B.a[10]=0 C.b[3][0]=0 D.b[0][2]=012.若有声明语句“charch=’a’,*pc=&ch;”,以下语句中有语法错误的是()。A.(*pc)++; B.ch+=-‘a’+‘A’;C.toupper(ch)=ch; D.ch++;13.已知有声明语句“inta[5]={1,2,3,4,5},*p,i;”,以下语句中()不能正确输出a数组全部元素的值。A.for(p=a,i=0;i<5;i++)printf("%d",*(p+i));B.for(p=a;p<a+5;p++)printf("%d",*p);C.for(p=a,i=0;p<a+5;p++,i++)printf("%d",p[i]);D.for(p=a;p<a+5;p++)printf("%d",p[0]);14.已知某程序如下:floatp=1.5;#definep2.5main(){printf("%f",p);}则main函数中标识符p代表的操作数是()。A.float型变量 B.double型变量C.float型常量 D.double型常量15.已有声明“intS[2][3]”,以下选项中()正确地引用了数组S中的基本元素。A.S[1>2][!1] B.S[2][0] C.S[1] D.S16.逻辑“异或”运算可描述为“axorb”,其中a和b为参加运算的两个操作数,运算结果为当且仅当a、b两个操作数中只有一个为真时才为真,其他情况下均为假。以下表达式中()可以正确表示逻辑“异或”运算。A.a||b B.a&&b C.(a&&b)&&!(a||b) D.(a||b)&&!(a&&b)17.若有声明“inta[5],*b=a,(*c)[3],*d[3];”,则在以下表达式中有语法错误的是()。A.a[0]=0 B.b[0]=0 C.c[0]=0 D.d[0]=018.若有声明:intk,a,b;unsignedlongy=5;doublex=1.23;则以下表达式中正确的是()。A.x%(-5) B.x=y[6] C.k=(a=1,b=2,&a+&b) D.a+=a-=(b=2)*(a=3)19.一个用C语言编写的源程序中,()是必不可少的。A.取名为main的函数定义 B.#include<stdio.h>C.变量声明 D.注释20.以下声明中正确的是()。A.intn=2,a[n]={10}; B.intn=10,*p[2]=&n;C.intn=10,a[2]={n}; D.inta[2][2]={10},(*p)[2]=a+1;21、若有函数fun的定义为voidfun(…){staticinta=1;…}则下列叙述中不正确的是()。A.在每次调用fun函数时,变量a的值是上次调用结束时a的值B.在fun函数之外,可以用变量名a直接引用a的值C.在其他函数中,可以出现声明doublea=2.5;D.fun函数的形式参数不能取名为a22.以下单目运算符均只需要一个操作数,其中要求操作数的类型只能是指针型的是()。A.& B.++ C.! D.*23.已知有声明“intgood=l;”,若要使得表达式“p="good"+good”无语法错误(包括警告错误),p应当声明为()。A.charp; B.char*p; C.intp; D.int*p;24.以下全局变量声明中正确的是()。A.autointi=1; B.floata=1,b=0.5,c=a+b;C.charfor=1; D.staticcharch;25.若已有声明“doublea[2][3]={1,2,3,4,5,6};”,则下列表达式中不能正确引用a[1][1]值的是()。A.*(a[0]+4)B.*(a[1]+1)C.*(*(a+3)+1)D.*(*a+4)26、已有声明“inta[5];”,以下表达式中不能正确取得a[1]指针的是()。A.&a[1]B.++aC.&a[0]+1D.a+l27.以下关于语句的说法中正确的是()。A.do-while语句的循环体至少会被执行1次B.while语句的循环体至少会被执行1次C.for语句的循环体至少会被执行1次D.在C语言中只能用do、do-while或for语句实现循环结构28.已知函数f的定义如下:voidf(void){printf("That’sgreat!");}则调用f函数的正确形式是()。A.f;B.f();C.f(void);D.f(1);29.以下程序在编译时在第三行报错“Redeclarationof‘a’infunctiond”,如果决定修改该行声明中出现的局部变量a的名字,则下列选项中不能用来替换变量名a的是()。intb;voidd(inta){intf;doublea=1; printf("%d",a);}main(){inte=1;d(e);} A.f B.e C.d D.b30、以下语句中不包含关键字的是()。 A.x=sqrt(2);B.while(x!=0)x--;C.if(x<0)x=-x;D.returnx;31.在main函数体内部和外部均允许出现的实体是()。A.预处理命令B.语句 C.另一函数的定义 D.函数形式参数声明32、已知有声明intx=2:,以下表达式中值不等于8的是()。A.x+=2,x*2B.x+=x*=XC.(x+7)/2*((x+1)%2+1)D.x*7.2/x+133、执行以下程序时, #include<stdio.h> main() {inta;floatb;scanf("%3d%f",&a,&b);printf("%d\t%f",ab);}若要求变量a和b分别从键盘获得输入值45和678.0,则以下四种输入数据中(代表“空格”键,<CR>代表“回车”键),不能达到该要求的输入数据是()。A.45678<CR>B.45<CR>678<CR>C.45,678<CR>D.045678<CR>34.下列程序段中,能将变量x、y中值较大的数保存到变量a、值较小的数保存到变量b的程序段是()。A.if(x>y)a=x;b=y;elsea=y;b=x;B.if(x>y){a=x;b=y;}elsea=y;b=x;C.if(x>y){a=x;b=y;}else{a=y;b=x;}D.if(x>y){a=x;b=y;}else(x<y){a=y;b=x;}35.已知函数fun的定义如下:voidfun(intx[],inty){intk;for(k=0;k<y;k++)x[k]+=y;}若main函数中有声明inta[10]={10}及调用fun函数的语句,则正确的fun函数调用形式是()。A.fun(a[],a[0]);B.fun(a[0],a[0]);C.fun(&a[0],a[0]);D.fun(a[0],&a[0]);36.设有下列程序段:staticcharb=2;voidY(){ staticfloatd=4;……}inta=1;voidX(){intc=3;……}关于程序段中各变量的属性,以下叙述中错误的是()。A.a是全局变量,函数X可以访问,函数Y不能访问B.b是全局变量,函数X和函数Y都可以访问C.c是动态变量,函数X可访问,函数Y不可访问D.d是静态变量,函数X和函数Y都可以访问37、若有如下声明和语句:intt[3][3],*pt[3],k;for(k=0;k<3;k++)pt[k]=&t[k][0];则表达式*(*(pt+1)+2)所引用的是()。A.t[2][0] B.&t[2][0] C.t[1][2] D.&t[1][2]38.设有声明floata=1.23456;inti;,欲将a中的数值保留小数点后两位,第三位进行四舍五入运算,能实现该功能的表达式是()。A.i=a*100+0.5,a=i/100.0 B.a=(a*100+0.5)/100.0C.a=((int)a*100+0.5)/l00.0 D.a=(a/100+0.5)/100.039.若已有声明“intx=4,y=3;”,则表达式x<y?x++:y++的值是()。A.2 B.3 C.4 D.540.设有变量声明“charc;”,执行“for(;c=(getchar()!=’\n’);)printf("%c",c);”时,从键盘上输入“ABCDEFG↙”之后,输出的结果是()。A.ABCDEFG B.AABBCCDDEEFFGGC.非字母数字字符 D.语句不能执行41.以下表示数学式“a<b<c”的逻辑表达式中,错误的是()。A.a<b<c B.a<b&&b<c C.!(a>=b)&&!(b>=c) D.!(a>=b||b>=c)42.下面关于循环语句for、while、do_while的叙述中,正确的是()。 A.三种循环语句的循环体都必须放入一对花括号中 B.三种循环语句中都可以缺省循环终止条件表达式 C.三种循环语句的循环体都至少被无条件地执行一次 D.三种循环语句都可能出现无穷循环43、若有声明“inta[]={l,2,3,4},*p,i;”,则以下程序段中不能输出13的是()。A.for(i=0;i<4;i+=2)printf("%d",a[i]);B.for(p=0;p<4;p+=2)printf("%d",a[p]);C.for(p=a;p<a+4;p+=2)printf("%d",*p);D.for(p=a,i=0;i<4;i+=2)printf("%d",p[i]);44、下列叙述中正确的是()。A.main函数必须出现在其他函数之前B.main函数中至少必须有一条语句C.C程序总是从main函数的第一条语句开始执行D.C程序总是在执行完main函数的最后一条语句后结束45.已知有结构定义和变量声明如下: structstudent { charname[20]; intscore; structstudent*h; }stu,*p;int*q;以下选项中错误的是()。A.p=&stu; B.q=&stu.score; C.scanf("%s%d",&stu); D.stu.h=p;46、设有声明“intp[10]={1,2},i=0;”,以下语句中与“p[i]=p[i+1],i++;”等价的是()。A.p[i]=p[i+1]; B.p[++i]=p[i]; C.p[++i]=p[i+1]; D.i++,p[i-1]=p[i];47.设有结构定义及变量声明如下: structproduct { char[5]; floadtprice; }y[4]={"100",100};以下表达式中错误的是()。A.(*y).code[0]=’2’; B.y[0].code[0]=’2’ C.y->price=10; D.(*y)->price=10;48.若有声明“inta=3,b=4,c=5;”,则下列表达式中值为0的是()。A.a&&b=0 B.a<=b C.a||b&&c D.!(!c||1)49.已知有声明“longx,y;”,且x中整数的十进制表示有n位数字(4<n<10),若要求去掉整数x十进制表示中的最高位,用剩下的数字组成一个新的整数并保存到y中,则以下表达式中能正确实现这一功能的是()。A.y=x/(10*(n-1))B.y=x%(10*(n-1))C.y=x%(long)pow(10,n-1)D.y=x%(10^(n-1))50.已知有声明“intx,y;”,若要求编写一段程序实现“当x大于等于0时y取值1,否则y取值-1”,则以下程序段中错误的是()。 A.if(x>=0)y=1;elsey=-1;B.y=x>=0?1:01;C.switch(){casex>=0:y=1;break; default:y=-1; }D.switch(x-abs(x)){case0:y=1;break;default:y=-1;}51、已知有声明“intm[]={5,4,3,2,1},i=0;”,下列对m数组元素的引用中,错误的是()。 A.m[++i]B.m[5]C.m[2*2]=0D.m[m[4]]52、若函数调用时的实参为变量,则以下关于函数形参和实参的叙述中正确的是()。A.实参和其对应的形参占用同一存储单元B.形参不占用存储单元C.同名的实参和形参占用同一存储单元D.形参和实参占用不同的存储单元53.C语言规定,在一个源程序中main函数的位置()。A.必须在最开始B.必须在最后C.必须在预处理命令的后面D.可以在其他函数之前或之后54、已知有声明“inta=3,b=4,c;”,则执行语句“c=1/2*(a+b);”后,c的值是()。A.0B.3C.3.5D.455、已知字母A的ASCII码是65,字母a的ASCII码是97,变量c中存储了一个大写字母的编码。若要求将c中大写字母编码转换成对应小写字母编码,则以下表达式中不能实现该功能的是()。A.c=tolower(c)B.c=c+32C.c=c-‘A’+’a’D.c=(c+’A’)%26-‘a’56.已知有定义和声明: structstudent{ intno; charname[20]; struct{intyear,month,day;}birth;}s;若要求将日期“1989年11月12日”保存到变量s的birthA.year=1989;month=11;day=12;B.s.year=1989;s.month=11;s.day=12;C.birth.year=1989;birth.month=11;birth.day=12;D.s.birth.year=1989;s.birth.month=11;s.birth.day=12;57、执行以下程序后的结果是()。#include<stdio.h>voidmain() { intx=3; Do{ printf("%d\t",x=x-3);}while(!x); }A.输出一个数:0B.输出一个数:3C.输出两个数:0和-3D.无限循环,反复输出数58.设有声明“inta=4,b=3,c=5;”,以下4个程序段中有3个程序段的执行效果是相同的,另一个执行效果不同的是()。A.if(a>b)c=a,a=b,b=c;B.if(a>b){c=a,a=b,b=c;}C.if(a>b)c=a;a=b;b=c;D.if(a>b){c=a;a=b;b=c;}59、以下关于if语句和switch语句的叙述中错误的是()。A.if语句和switch语句都可以实现算法的选择结构B.if语句和switch语句都能实现多路(两路以上)选择C.if语句可以嵌套使用D.switch语句不能嵌套使用60.若有声明语句“chars1[10]={0},s2[10]="books";”,则能将字符串"books"赋给数组s1保存的表达式是()。A.s1="books"; B.strcpy(s2,s1);C.s1=s2; D.strcat(sl,s2);61.已知A盘根目录下的一个文本数据文件data.dat中存储了100个int型数据,若需要修改该文件中已经存在的若干个数据的值,只能调用一次fopen函数,已有声明语句“FILE*fp;”,则fopen函数的正确调用形式是()。A.fp=fopen("a:\\data.dat","r+");B.fp=fopen("a:\\data.dat","w+");C.fp=fopen("a:\\data.dat","a+");D.fp=fopen("a:\\data.dat","w");62.数组和链表都可以用于存储一组彼此有关联的数据,以下说法中不正确的是()。A.数组占用一块连续的存储区域,链表可能占用若干块不连续的存储区域B.数组和链表所占用的存储区域均不能在程序运行期间动态地分配C.数组中的数据可以随机存取或顺序存取,链表中的数据只能顺序存取D.数组的长度是固定的,链表的长度是不固定的63.设有定义和声明语句:typedefstructdtype{inta;structdtype*b;}node;staticnodex[3]={5,&x[1],7,&x[2],9,’\0’},*prt=&x[0];下列选项中,表达式值不为5的是()。A.x[1].b->a-2B.Ptr->b->a-2C.(ptr+1)->a-2D.ptr->a64.在以下程序中,需要在main函数之后定义一个函数,以下选项中()可以用做该函数的名字。#defineP3.14inty;main(){inta=1;函数名(a);…/*若干执行语句*/}int函数名(intx){returnx*x;}A.main B.y C.P D.print65.已知有语句“FILE*fp;intx=123;fp=fopen("out.dat","w");”,如果需要将变量x的值以文本形式保存到一个磁盘文件out.dat中,则以下函数调用形式中正确的是()。A.fprintf("%d",x); B.fprintf(fp,"%d",x);C.fprinff("%d",x,fp); D.fprintf("out.dat","%d",x);66.已知有声明语句“chars1[10]="12345",s2[10]="abcde",s3[10];”,以下语句中能将s1中存储的字符串和s2中存储的字符串正确交换的是()。A.s3=s1,s1=s2,s2=s3;B.s3[0]=s1[0],s1[0]=s2[0],s2[0]=s3[0];C.strcpy(s3[0],s1[0]),strcpy(s1[0],s2[0]),strcpy(s2[0],s3[0]);D.strcpy(s3,s1),strcpy(sl,s2),strcpy(s2,s3);67.在定义任何一个函数时,下列选项中()是不可缺少的。A.函数名之前的数据类型 B.函数名之后的一对圆括号C.形式参数声明 D.函数体中的语句68.已有数据类型定义和变量声明如下:structperson{intnum;charname[20],sex;struct{intclass;charprof[20];}in;}a={20,"Lining",’M’,{5,"computer"}},*p=&a;下列语句中正确的是()。A.printf("%s",a->nname); B.printf("%s",p->in.prof);C.printf("%s",*); D.printf("%c",p->in->prof);69.若有以下程序:intx;intf(inty){return标识符;}#include<stdio.h>intw;main(){intz=2;f(z);…}则在函数f中return语句后允许出现的标识符是()。A.x或w B.x或y C.z或w D.NULL70.以下跳转语句中,只有()可以选择不唯一的跳转目的地。A.continue; B.break; C.goto标识符; D.return;71.在缺省情况下,标准C的编译系统中预定义的标准输出流stdout直接连接的设备是()。A.软盘 B.硬盘 C.键盘 D.显示器72.已有枚举类型定义:“enumletter{A,B,C=7,D,E};”,以下表达式中除()外,其他表达式的机内值均等于10。A.’\xb’-1 B.B+E C.010+2 D73.已知数据类型定义和变量声明如下:structsk{inta;floatb;}data[2],*p;若有p=data,则以下对data[0]中成员a的引用中错误的是()。A.data[0]->a B.data->a C.p->a D.(*p).a74.已知有声明“charc=’1’;intx=300;floatt=35000;doubled=3.1234567e10;”,则以下表达式求值时除()外其结果都可能是不准确的。A.x=t/c B.t=d/x C.t=d/1e5f D.t=x+c75.已有预处理命令和声明如下:#defineN10inta=2,c=1;doubleb=1.2;下述程序段正确的是()。A.switch(a){casec:a--;break;casec+1:a++;break;}B.switch(a){caseN>0:a=1;break;case1:a=0;break;}C.switch(a){case2:b++;break;case‘0’:b=3;}D.switch(b){case1.0:b++;break;case1.2:b=1;break;}76.若有以下声明和定义:voidfun(intc){printf("%d",c);}main(){void(*a)(int)=fun,*b(int),(*c)(int);/*调用fun函数语句位置*/}void*b(intc){}如果在main函数中需要调用fun函数,以下调用语句中错误的是()。A.fun(1); B.(*a)(1); C.b=fun;(*b)(1); D.c=a;(*c)(1);77.以下叙述正确的是()。A.一个用C语言编写的程序在运行时总是从main函数开始逐条执行语句的B.main函数是系统库函数C.main函数中每行只能出现一条语句D.main函数必须出现在所有其他函数之前78.以下关于函数形式参数的声明中正确的是()。A.inta[]B.inta[][]C.inta[]={0}D.inta[2][]79.关于函数返回值,以下叙述中正确的是()。A.函数返回值的类型由函数体内return语句包含的表达式的类型决定B.函数返回值的类型由函数头部定义的函数类型决定C.若函数体中有多个return语句,则函数的返回值是排列在最后面的return语句中表达式的值D.若函数体内没有return语句,则函数没有返回值80.已知字符A的机内编码为65,则执行下列函数调用语句时,不能输出字符B的是()。 A.putchar(‘B’);B.putchar("B"); C.putchar(66);D.putchar(‘\x42’);81.下列一维数组的声明中正确的是()。 A.inta[];B.intn=10,a[n]; C.inta[10+1]={0};D.inta[3]={1,2,3,4};82.已知有结构类型定义:typedefstructex{longintnum; charsex; structex*next; }student;下列叙述错误的是()。 A.structex是结构类型B.student是结构类型的变量名 C.ex可缺省D.student不可缺省83.下列程序段的输出结果是()。inti,x[3][3]={9,8,7,6,5,4,3,2,1},*p=&x[1][1];for(i=0;i<4;i+=2)printf("%d",*(p+i)); A.52B.51C.53D.9784.已知有声明”chara[6],*p=a;”,现需要在程序运行过程中将字符串"Hello",保存到a数组中,则下列选项中能正确完成此操作的表达式是()。 A.a[6]="Hello"B.a="Hello" C.p="Hello"D.strcpy(a,"Hello")85.若要使表达式“p++”无语法错误,则变量p不能声明为()。 A.intp;B.doublep;C.int*p;D.struct{intx;}p;86.以下函数定义中正确的是()。A.intfun(inta,b){}B.intfun(inta[][]){}C.intfun(void){}D.intfun(staticinta,intb){}87.已知有函数f的定义如下:intf(inta,intb){if(a<b)return(a,b);elsereturn(b,a);}在main函数中若调用函数f(2,3),得到的返回值是()。 A.2B.3C.2和3D.3和288.下列各选项都是在C语言程字段中增加的注释,其中注释方法错误的是()。A.voidmain(/*intargc,char,*argv[]*/) {}B.voidmain(){pri/*remark*/ntf("name");}C.voidmain() {intx/*=10*/;printf("%d",x);} D.voidmain(){intx=10;/*printf("%d",x);*/}89.若有定义和声明typedefenum{green,red,yellow,blue,b1ack}color;colorflower;,则下列语句中正确的是()。A.green=red;B.flower=red;C.color=red;D.enum=red;90.若已定义一个有返回值的函数,则以下关于调用该函数的叙述中错误的是()。A.函数调用可以作为独立的语句存在B.函数调用可以出现在表达式中C.函数调用可以作为一个函数实参D.函数调用可以作为一个函数形参91.对应main函数中的fun函数调用语句,以下给出的四个fun函数首部中,错误的是()。main(){inta[50],n;fun(n,&a[9]);}A.voidfun(intm,intx[])B.voidfun(ints,inth[41])C.voidfun(intp,int*s)D.voidfun(intn,inta)92.若有声明“inti;floatx;chara[50];”,为使i得到值1,x得到值3.1416,a得到值yz,当执行语句“scanf("%3d%f%2s",&i,&x,a);”时,正确的输入形式是()。A.1,3.1416,yz↙B.13.1416yz↙C.0013.1416yz↙D.i=001,x=3.1416,a=yz↙93.程序段“intx=3;do{printf("%d",x--);}while(!x);”的执行结果是()。A.321B.2C.3D.死循环94.假定已有声明“chara[30],*p=a;”,则下列语句中能将字符串“ThisisaCprogram.”正确地保存到数组a中的语句是()。A.a[30]="ThisisaCprogram.";B.a="ThisisaCprogram.";C.p="ThisisaCprogram.";D.strcpy(p,"ThisisaCprogram.");95.若需要对一个数据文件abc.txt中的数据做加密处理并且限定只能做一次打开文件操作,则在“fp=fopen("abc.txt",模式字符串);”中,模式字符串应当是()。A."w+"B."r+"C."a+"D."r"96.下列在C语言源程序的错误中,通常不能在编译时发现的是()。A.括号不匹配B.非法标识符C.数组元素下标值越界D.程序结构不完整97.若有程序段“charc=256;inta=c;”,则执行该程序段后a的值是()。A.256B.65536C.0D.-198.若有枚举类型定义“enumlist1{x1,x2,x3,x4=6,x5,x6};”,则枚举常量x2和x6代表的值分别是()。A.1,6B.1,8C.2,6D.2,899.若程序中已有相应的声明,下列语句中错误的是()。A.printf(i==4?"%6d\n":"%6d",i);B.i==4?printf("%6d\n",i):printf("%6d",i);C.for(i=10;;i--)if(i==1)break;D.for(i=10;;)if(i--);break;100.已知有声明“chara[]="Itismine",*p="Itismine";”,下列叙述中错误的是()。A.strcpy(a,"yes")和strcpy(p,"yes")都是正确的B.a="yes"和p="yes"都是正确的C.*a等于*pD.sizeof(a)不等于sizeof(p)三、C基本概念填空题1.包含二目运算符的表达式可一般地表示为(x)op(y),其中op代表运算符,x、y代表操作数。若op是“+”运算符,且x和y均为常量时,不能同时为(1)常量。2.当(2)语句被执行时,程序的执行流程无条件地从一个函数跳转到另一个函数。3.在函数内部声明局部变量时缺省了存储类型,该变量存储类型为(3)。4.包含二目运算符的表达式可一般地表示为(x)op(y),其中op代表运算符,x、y代表操作数。若op是关系运算符或逻辑运算符,则不管x、y为何值,表达式的值是(4)。5.在C语言中大部分执行语句都含关键字。例如,for语句含关键字for。除这些语句外不含关键字的非空操作语句是(5)。6.常量’\n’的数据类型是(6)。7.已知main函数中有声明“inta[10];”,若在main函数中出现语句“fun(a);”,执行该函数调用语句时传递给fun函数对应位置形式参数的值是(7)。8.在声明变量时,类型修饰符unsigned一般用于修饰基本类型中的int和(8)。9.已知某程序中有如下片段:inti;floatf;/*p的声明*/p=&i;p=&f;若要保证该段程序没有任何语法错误,p应当声明为(9)。10.已有声明“floatx;doubley;inta;longb;charc;”,则表达式x+y*a/x+b/y+c值的类型为(10)。11.系统库函数scanf和gets在被调用执行时都可以读取从键盘输入的一串数字字符,其中函数(11)具有将读取的数字字符串转换为整型数的功能。12.若有函数定义intf(){intx=4,y=3,z=2;returnx,y,z;},则调用函数f后的返回值是(12)。13.若二维数组a有m列,则在存储该数组时,a[i][j]之前有(13)个数组元素。14.一个用C语言编写的程序在运行时,如果没有发生任何异常情况,则只有在执行了(14)函数的最后一条语句或该函数中的return语句后,程序才会终止运行。15.数学式所对应的C语言表达式为(15)。16.若一个函数不需要形式参数,则在定义该函数时,应使形式参数表为空或放置一个(16)。17.已知有声明floatd=1;doublef=1;longg;和语句printf("____",g=1O+’i’+(int)d*f);,为了正确地以十进制形式输出printf参数表中第二个参数(表达式)的值,则在第一个参数中的下划线位置处应填写的格式转换说明符是(17)。18.设函数a的定义如下:voida(){intx=12,y=345;FILE*fp=fopen("my.dat","w");fprintf(fp,"%d%d",x,y);fclose(fp);}已知main函数中有声明intx,y;FILE*fp=fopen("my.dat","r");,若需要从文件my.dat中正确地读出由函数a写入的两个数据并分别保存到变量x和y中,则在main函数中使用的读数据语句应当是(18)(要求写出语句的完整格式)。19.执行以下程序段后,number的值是(19)。charstr[]="Hello!";intnumber;number=sizeof(str);20.若有说明inta[][4]={1,2,3,4,5,6,7,8,9};,则数组a第一维的大小是(20)。21.设有如下声明和语句:inta=2,b,c=5;scanf("%d",&b);b=c--||scanf("%d",&c)&&a++;该程序段执行时,若从键盘输入的数据是4□3(□代表空格键),则变量C的值为(21)。22.若有声明“chara[3]="AB";char*p=a;”,执行语句“printf("%d",p[2]);”后输出结果是(22)。23.若有声明“inta=32767,b;”,则在TurboC2.0系统中执行语句“printf("%d",b=++a);”后输出结果是(23)。24.若有函数声明“intsub(int(*x1)(),int*x2);”,则形式参数x1是指向(24)的指针变量。25.若有宏定义“#definemax(a,b)(a>b?a:b)”,则表达式“max(2,max(3,1))”的值是(25)。26.在声明局部变量时,不能使用的存储类别标识符是(26)。27.在以下程序的main函数中,语句“fun(x,10);”内的实参x表示数组x的(27)。voidfun(inta[10],intn){ inti;for(i=0;i<n;i++)a[i]++; }main(){ intx[10]={0};fun(x,l0); }28.已知程序中有声明“inta;longb;”,若需要接收从键盘输入的电话号码字符串(010)64782656(其中010是区号,64782656是电话号码)并将其中的区号、电话号码分别存储到变量a、b中,则实现该功能的输入语句应为“scanf("(28)",&a,&b);”。29.若有声明“doublex=10,y=5;”,则计算xy的库函数调用形式是(29)。30.在C语言源程序中,不带任何修饰符的浮点数直接量(例如:3.14)都是按(30)类型数据存储的。31.若有声明“charsl[10]="ABCDE",s2[10]="A\\0";”,则语句“printf("%d",strlen(strcpy(sl,s2)));”的输出结果是(31)。32.已知有函数定义“intfun(){return(3,4);}”,则调用fun后的函数返回值是(32)。33.在一个C语言源程序中,必不可少的是(33)。34.执行以下程序段中的语句“k=M*M+1;”后k的值是(34)。 #defineN2 #defineMN+1 k=M*M+1;35.声明局部变量时若缺省存储类别,该变量的存储类别是(35)。36.数学式所对应的C语言表达式为pow(x,(36))。37.已知有声明和语句“inta;scanf("a=%d",&a);”,欲从键盘上输入数据使a中的值为3,则正确的输入应是(37)。38.已知有声明“charch;inta;”执行语句“scanf("%c%d",&ch,&a);”时如果从键盘输入的数据是“123”,则变量a得到的值是(38)39.若有以下宏定义:#defineM(a,b)–a/b;则执行语句“printf("%d",M(4+3,2+1));”后输出结果为(39)。40.执行程序段“intx=0x6c;printf("x=%x\n",x);”后的输出结果为(40)。41.只能在循环体中出现的语句是(41)语句。42.&既可以用做单目运算符也可以用做双目运算符,其中用做单目运算符时表示的功能是(42)。43.当程序读写数据文件时,需要有声明语句“FILE*fp;”,在该声明语句之前必须包含头文件(43)。44.在文件中,以符号常量EOF作为文本文件(字符流文件)的结束标记,EOF代表的值是(44)。45.若有声明“chara=0;intb=1;floatc=2;doubled=3;”,则表达式“c=a+b+c+d”值的类型为(45)。46.若某个程序运行时创建了多个输入流,当执行到程序中的scanf函数时,只有在(46)输入流为空时才会暂停程序运行而等待输入。47.执行“printf("%d,%d",i,j,k,m);”后在屏幕上将输出(47)个整数。48.设已有非空文本数据文件file1.dat,要求能读出文件中原有的全部数据,并在文件原有数据之后添加新数据,则用FILE*fp=fopen("file1.dat",(48))打开该文件。49.在TurboC2.0系统中,若将实型常数1.5存储在内存中,它占用(49)个字节。50.若有定义“enumseq{mouse,cat,dog,rabbit=0,sheep,cow=6,tiger};”,则执行语句“printf("%d",cat+sheep+cow);”后输出结果是(50)。51.若有声明“inta=30,b=7;”,则表达式“!a+a%b”的值是(51)。52.已知数据文件a.dat是通过执行以下程序建立的,若在另一个程序运行时需要从该数据文件中正确读取数据,则应当调用的读文件库函数的函数名是(52)。main(){FILE*fp=fopen("a.dat","wb");floatx=25.0;fwrite(&x,sizeof(float),1,fp);fclose(fp);}53.在C语言的源程序中若出现常量“1L”,则该常量的类型是(53)。54.已知有声明”intx=1,y=2;”,则执行表达式”(x>y)&&(--x>O)”后x的值为(54)。55.在调用函数fopen("a:\\b.dat","r")时,若A盘根目录下不存在文件b.dat,则函数的返回值是(55)。56.已知有声明intx=1,y=2,z=3:则执行语句x>y?(z-=--X):(z+=++x);后,变量x、z的值分别是(56)。57.循环语句中通常都包含一个“循环条件表达式”,该表达式的值决定是否执行下一次循环。在C语言的循环语句中,“循环条件表达式”可缺省的语句是(57)。58.关键字case和default只能在(58)语句中出现。59.在用fopen函数打开一个已经存在的数据文件abc时,若要求既可以读出abc文件中原来的内容,也可以用新的数据覆盖文件原来的数据,则调用fopen函数时,使用的存取方式参数应当是(59)。60.若有声明“inti=7;floatx=3.1416;doubley=3;”,表达式i+’a’*x+i/y值的类型是(60)型。61.与整型数学算式等价的c语言表达式是(61)。62.若要使表达式p="jiangsu"无任何错误(包括语法错误和警告错误),p的声明形式应为(62)。63.若有声明“inta=5,b=2;”,则表达式“b+=(float)(a+b)/2”运算后b的值为(63)64.若有声明“chars[10]="remind";”,执行“puts(s+2):”后的输出结果是(64)。65.已知某程序中有预处理命令“#include<stdio.h>”,为使语句“zx=fopen("c:\\a.txt","r");”能正常执行,在该语句之前必须有声明(65)。66.可以改变局部变量的生存期、但不能改变它的作用域的存储类别是(66)。67.C语言有效的预处理命令总是以(67)开头。68.若有声明“inta=15,b=20,c=25,e;”,则执行语句“e=a>b?—c:++c;”后变量e的值是(68)。69.若有声明“inta=3,b=4;floatx=4.5,y=3.5;”,则表达式“(float)(a+b)/2+(int)x%(int)y”的值是(69)。70.若已有定义“enumTP{A,B,C};”,则执行语句“printf("%d\n",A+1);”后输出结果是(70)。71.若需要打开D盘上user子目录下已经存在的名为abc.txt的文本文件,先独处文件中数据,后追加写入新数据,则正确的函数调用语句是“fp=fopen("D:\\user\\abc.txt",(71));”。72.若有声明“intx;”且sizeof(x)的值为2,则当值为(72)时“x+1>x”为假。73.若有声明“floaty=3.14159;intx;”,则计算表达式“x=y*100+0.5,y=x/100.0”后y的值是(73)74.C语言有!、&&、||三个逻辑运算符,其中优先级高于算术运算符的是(74)。75.若有声明“intr=2;”,则执行语句“printf("%d",sizeof(2*3.14*r));”时输出(75)。76.数学表达式所对应的C语言表达式为(76)。77.若有以下声明:char*p="%d,%d\n";inta=1,b=2;则执行语句“printf(p,a,b);”时输出(77)。78.已知有声明“charch=’g’;”,则表达式ch=ch-‘a’+’A’的值为字符(78)的编码。79.在C语言系统中,如果一个变量能正确存储的数据范围为整数-32768~32768,则该变量在内存中占(79)字节。80.已知有声明“inta[3][2]={{1,2},{3,4},{5,6}},*p=a[0];”则执行语句“printf("%d\n",*(p+4));”后的输出结果是(80)。81.若有声明“doublen;”,则数学公式“”对应的C语言表达式是(81)。82.若有声明“inta=0,b=1,c=2;”,执行语句“if(a>0&&++b>0)c++;elsec--;”后,变量a、b、c的值分别是时输出(82)。83.声明“FILE*p;”中的类型标识符“FILE”是在头文件(83)中定义的。84.除goto语句外,在循环结构中执行(84)语句可提前结束本次循环直接进入下一次循环。85.若有程序段“inta[10],*p=a,*q;q=&a[5];”,则表达式q-p的值是(85)。86.执行语句序列“inta,b;a=b=4;a+=b%3;”后,变量a,b的值分别是(86)。87.使用TURBOC系统编译C语言源程序后生成的文件名后缀是(87)。88.C语言源程序中用十六进制表示整型常数必须以(88)开头。89.如果一个循环结构的循环体至少要执行一遍,则最适合描述该循环结构的语句是(89)语句。90.若要声明一个无符号整型变量x,则正确的声明形式是“(90)intx;”。91.已知有声明“intn=12;doublea;”则执行语句“a=n/=5;”后,a的值为(91)。92.若有数据类型定义如下:unionA{floata1;floata2;};则表达式sizeof(unionA)的值为(92)。四、C运行结果题1.以下程序运行时输出第一个数是(1),第二个数是(2),第三个数是(3)。#include<math.h>main(){staticinta[3][3],i,j;for(i=0;i<3;i++)for(j=0;j<3;j++){switch(abs(i-j)){case0:if(i==0||i==2)a[i][j]+=3;elsea[i][j]++;break;case1:a[i][j]+=2;break;case2:a[i][j]+=3;}}printf("%d,%d,%d",a[1][1],a[1][2],a[2][0]);}2.以下程序运行时输出第一行是(4),第二行是(5)。#include<string.h>intconvert(chars1[],chars2[]){inti=0,j,s;chartab[8][4]={"000","001","010","011","100","101","110","111"};for(i=0,j=0;s1[i]!='\0';i++,j=j+3)strcpy(&s2[j],tab[s1[i]-'0']);for(i=0,s=0;i<strlen(s2);i++)s=s*2+s2[i]-‘0’;returns;}main(){charss1[]="15",ss2[80];inty;y=convert(ss1,ss2);printf("%d\n%s",y,ss2);}3.已知int型变量的存储字节数为2,以下程序运行时输出结果是(6)。#include<stdio.h>main(){inta=3,b=2,c=7,d=6,e=8;longf=a*10000+b*1000+c*100+d*10+e;printf("%ld",f);}4、以下程序运行时输出结果是(7)。#include<stdio.h>main(){char*p="student";if(p=="student")printf("yes");elseprintf("no");}5.以下程序运行时输出结果是(8)。#include<ctype.h>#include<stdio.h>main(){char*s="23a4";intk=0,a=0,b=0;do{if(isdigit(s[k])){if(s[k]%2==0){a=a+s[k]-'0';continue;}a=a+s[k]-'0';b=b+s[k]-'0';}}while(s[k+1]&&++k);printf("%d,%d,%d\n",k,a,b);}6.以下程序运行时输出结果是(9)。#include<stdio.h>main(){chara=2.56;intd=a;printf("%d",d+1);}7、以下程序运行时输出结果的第一行是(10),第二行是(11),笫三行是(12)。#include<stdio.h>typedefstructs{intindex;intvalue;}M;main(){staticinti,j,k,c[4][4];Ma[10]={{0,1},{3,2},{5,3},{6,4},{9,5},{15,6},{-1,0}},*p=a,b[10]={{1,1},{3,2},{4,3},{6,4},{10,5},{13,6},{-1,0}},*q=b;while(p->index!=-1){i=p->index/4;j=P->index%4;c[i][j]=p->value; p++;}while(q->index!=-1){i=q->index/4;j=q->index%4;c[i][j]+=q->value;q++;}for(i=0;i<4;i++){for(j=0;j<4;j++)printf("%d",c[i][j]);printf("\n");}}8.以下程序运行时输出结果是(13)。#include<stdio.h>main(){char*s,*s1="Here";s=s1;while(*s1)s1++;printf("%d\n",s1-s);}9.以下程序运行时输出结果是(14)。#include<stdio.h>main(){inta=0,b=0,c=0; if(a++&&(b+=a)||++c)printf("%d,%d,%d\n",a,b,c);}10.以下程序运行时输出结果的第一行是(15),第二行是(16),第三行是(17)。#defineN3main(){inti,j,k=1,a[N][N]={0};for(i=0;i<=N/2+1;i++){for(j=0;j<=i;j++)a[j][i-j]=k++;}for(;i<2*N;i++){for(j=i+1-N;j<=N-1;j++)a[j][i-j]=k++;}for(i=0;i<N;i++){for(j=0;j<N;j++)printf("%4d",a[i][j]);printf("\n");}}11、以下程序输出结果为(18)。 voidf(inta,int*b) {a++;b++;(*b)++;} main() {inti,x[2]={4,4}; f(x[0],&x[0]); printf("%d,%d",x[0],x[1]); }12、以下程序运行时,输出结果是(19)。 #include<stdio.h> fun(intx) { if(x/2>0)fun(x/2); printf("%d",x%2); } main() { fun(20);putchar(‘\n’);}13、以下程序运行后的输出结果为(20)。#include<stdio.h>intb;intfun(inta){staticintc=3;return((++a)+(++b)+(++c));}voidmain(){inti,a=2;for(i=0;i<2;i++)printf("%5d",fun(a));}14.以下程序运行时输出结果为(21)。#include<stdio.h>main(){ ints=1,n=255; do { s*=n%10; n/=10; }while(n); printf("%d\n",s);}15.以下程序运行后输出结果中第一行为(22),第二行为(23),第三行为(24)。#include<stdio.h>main(){ inti,j,a[3][3]={0}; for(i=0;i<3;i++) { for(j=0;j<3;j++) switch(i-j+2) { case0: case1:a[i][j]=1;break; case2:a[i][j]=2;break; case3:a[i][j]=3;break; case4:a[i][j]=4;break; }} for(i=0;i<3;i++) { for(j=0;j<3;j++) printf("%4d",a[i][j]);printf("\n"); }}16.以下程序运行后的输出结果是(25)。#include<Stdio.h>#definecount(n)++nmain(){ intx=-3,n=8; while(count(x))n--; printf("%d\n",n);}17.以下程序运行后的输出结果是(26)。#include<stdio.h>main(){ chara[]="369",*p=a; ints=0,t=1; while(*++p)t*=10; p--; while(t) { s+=(*p-'0')*t; p--; t/=10; } printf("%d\n",s);}18.以下程序运行时输出结果的最后一行是(27)。#include<stdio.h>voidmain(){inta=1,b=1,i; for(i=1;i<=2;i++){ a=a+b;printf("%d/%d,",b,a);b=a+b;printf("%d/%d\n",a,b);} printf("\n");}19.以下程序运行后输出结果为(28)。#include<stdio.h>voidmain(){ inti,sum=0; for(i=0;i<5;i++) { switch(i) { case0: case1:sum++; case3:sum++; case4:sum--;break; } } printf("%d\n",sum);}20.以下程序运行时输出结果是(29)。 #include<stdio.h> voidmain() { intk=5,n=0; while(k>0) { switch(k) { case1: case3:n+=1;k--;break; default:n=0;k--; case2: case4:n+=2;k--;break; } printf("%3d",n); } }21.以下程序运行时输出到屏幕的结果是(30)。#include<stdio.h>voidmain(){ inti=1,m=0; switch(i) { case1: case2:m++; case3:m++; } printf("%d",m);}22、以下程序运行时输出到屏幕的结果是(31)。 #include<stdio.h> #defineMAX(A,B)A>B?2*A:2*B voidmain() { inta=1,b=2,c=3,d=4,t; t=MAX(a+b,c+d); printf("%d\n",t);}23.下列程序运行时输出到屏幕的结果是(32)。#include<stdio.h>voidmain(){ inta=1,b=2; a+=b; b=a-b; a-=b; printf("%d,%d\n",a,b);}24.以下程序运行时输出到屏幕的结果是(33)。#include<stdio.h>voidmain(){ ints[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i,j; for(i=0;i<12;i++) { j=s[i]; c[j]++; } for(i=1;i<5;i++)printf("%d",c[i]);}25、以下程序运行时输出到屏幕的结果中第一行是(34),第二行为(35)。#include<stdio.h> #include<ctype.h> voidcompute(char*s) { intt,r; charop; for(r=0;isdigit(*s);s++)/*isdigit(*s)判断s指向的字符是否为数字字符*/ r=r*10+*s-‘0’; while(*s) { op=*s++; for(t=0;isdigit(*s);s++) t=t*10+*s-'0'; switch(op) { case'+':r=r+t;break; case'-':r=r-t;break; case'*':r=r*t;break; case'/':if(t)r=r/t;else{puts("devideerror");return;} } } printf("%d\n",r); } voidmain() { compute("12+6-19+2"); compute("12/6*19/2"); }26.以下程序运行时输出到屏幕的结果中第一行是(36),第二行是(37)。 #include<stdio.h
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年山东菏泽城投控股集团有限公司公开招聘工作人员笔试参考题库附带答案详解
- 培训机构宣传片策划与制作大纲
- LNG加气站规范标准
- 劳动合同法教师兼职规定
- 贷款展期协议二零二五年
- 气质联用仪安捷伦培训
- 二零二五版培训服务合同及技术服务合同种类
- 二零二五企业物业管理合同范例
- 2024国家电投国宁新储公司招聘14人笔试参考题库附带答案详解
- 分期付款按揭购房协议合同二零二五年
- 《公路建设项目文件管理规程》
- 2023年北京按摩医院招聘笔试真题
- 2024年山东省烟台市初中学业水平考试地理试卷含答案
- 人教版小学三年级下期数学单元、期中和期末检测试题
- 森林经理学 课程设计
- 工会驿站验收
- “双减”政策(2023年陕西中考语文试卷非连续性文本阅读题及答案)
- 【全友家居企业绩效考核问题及其建议(论文8500字)】
- 职业技术学校《云计算运维与开发(初级)》课程标准
- 幼儿园大班数学练习题直接打印
- 100以内整十数加减法100道口算题(19套)
评论
0/150
提交评论