C语言基础题分析.docx
- 文档编号:7980541
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:19
- 大小:52.91KB
C语言基础题分析.docx
《C语言基础题分析.docx》由会员分享,可在线阅读,更多相关《C语言基础题分析.docx(19页珍藏版)》请在冰豆网上搜索。
C语言基础题分析
1.执行下列语句序列后,不可能出现的运行结果是________。
intn;
scanf("%d",&n);
switch(n)
{
case1:
case2:
putchar('X');
case3:
case4:
putchar('Y');break;
default:
putchar('Z');
A.显示:
z
B.显示:
xy
C.显示:
x
D.显示:
y
2.设a,b为整型变量,且二者均不为0,以下关系表达式中恒成立的是________。
A.a/b*b/a==1
B.a/b*b==a
C.a*b/a==b
D.a*b/a*b==1
3.设有定义:
intx=10,y=20,z=30;则执行下列语句后的结果是________。
if(x>y)z=x;
x=y;y=z;
printf("%d,%d,%d",x,y,z);
A.20,30,20
B.20,30,30
C.20,30,10
D.10,20,30
4.下列程序的输出结果是_______。
main()
{
inta=011;
printf("%d\n",++a);
}
A.9
B.10
C.11
D.12
5.设x,y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是______。
A.!
(x z||1 B.x==y&&y! =z C.x||y+z&&y-z D.y&&’y’ 6.以下所列的各函数声明中,正确的是________。 A.subplay(aasinteger,basinteger) B.voidplay(vara: Integer,varb: Integer) C.voidplay(inta,b) D.voidplay(inta,intb) 7.表达式! x等价于________。 A.x==1 B.x==0 C.x! =0 D.x! =1 8.设有定义inta[10];则合法数组元素的下标范围为______。 A.1至10 B.0至9 C.1至9 D.0至10 9.下列关于数组的描述中错误的是______。 A.当数组名作为参数传递给某个函数时,原数组中的元素的值可以被函数修改 B.数组的名称其实是数组在内存中的首地址 C.一个数组只允许存储同种类型的变量 D.如果在对数组进行初始化时,给定的数组元素个数比数组元素少时,多余的数组元素自动初始化为最后一个给定元素的值 10.下列标识符中,不合法的标识符为________。 A._int B.a_10 C.a#b D.Pad 11.下列C语言的标识符中,不合法的标识符为____________ A.star B.1234 C._a100 D.circuit9 12.若已定义: intx=10; 则表达式x=(4*5,x*5,x+25)的值是______。 A.20 B.45 C.125 D.35 13.若x是int类型变量,y是float类型变量,则为了将数据55和55.5分别赋给x和y,则执行语句: scanf(“%d,%f”,&x,&y,);时,正确的键盘输入是______。 A.55,55.5↙ B.x=55,y=55.5↙ C.55↙55.5↙ D.x=55↙y=55.5↙ 14.若有说明语句: intx=25,y=20,z=30; 则执行语句: if(x>y){y=z;z=x;}x=y;printf(“%d,%d,%d”,x,y,z);后,输出是____________ A.25,20,30 B.30,30,25 C.25,30,30 D.25,30,25 15.程序段: intnum=2; while(num) printf(“%d,”,num--); 的运行结果是_______________ A.2,1, B.2,1 C.2,1,0 D.2,1,0, 16.若有说明: inta[3][4],s;则对数组a的元素引用正确的是____________ A.s=0;for(i=0;i<=3;i++)for(j=0;j<4;j++)s+=a[i][j]; B.s=0;for(j=0;j<=4;j++)for(i=0;i<3;i++)s+=a[i][j]; C.s=0;for(i=0;i<4;i++)for(j=0;j<=3;j++)s+=a[j][i]; D.s=0;for(i=0;i<3;i++)for(j=0;j<4;j++)s+=a[i][j]; 17.如果形参获取实参的地址,则____________作为函数调用时的实参。 A.数组名 B.全局量 C.数组中全部元素的值 D.数组中的元素个数 18.若有定义: inti,j,*pi=&i;则与i==j等价的比较表达式是____________ A.i==*pi B.*pi==*&j C.i==&j D.i==**pi 19.若有定义: structperson{ intid; charname[20]; }per,*s=&per; 则以下对结构体成员的引用中正确的____________ A.per.name[0] B.s->name[0] C.per.name[8] D.per.id 20.若有以下语句: charx=5,y=9,z;z=(y|x)<<2; 则z的二进制值是________________ A.00011011 B.00001010 C.00110100 D.00001100 21.以下C程序中预处理命令写法正确的是: 。 A.#include(stdio.h) B.#include[stdio.h] C.#include{stdio.h} D.#include 22.设有变量定义语句chara;则下面的赋值语句中是正确的。 A.a='&'; B.a="&"; C.a='''; D.a='16'; 23.设有charch;与语句“ch=getchar();”等价的语句是: 。 A.printf("%c",ch); B.printf("%c",&ch); C.scanf("%c",ch); D.scanf("%c",&ch); 24.inta=2,b=5;则表达式21%9/(float)a+4/b*b的运算结果为。 A.2 B.1 C.1.5 D.0 25.能正确表示逻辑关系"a>=10或a<=0"的C语言表达式是。 A.a>=10ora<=0 B.a<=0|a>=10 C.a<=0||a>=10 D.a>=10&&a<=0 26.设有intn=60;写出下列语句的运行结果 switch(n/10) { case6: printf("@");break; case5: printf("#"); default: printf("$"); } A.@#$ B.#$ C.$ D.@ 27.设有inti;以下语句中,循环次数为100次的语句是: 。 A.for(i=0;i<=100;i++) B.for(i=0;i<99;i++) C.for(i=1;i<99;i++) D.for(i=0;i<100;i++) 28.C程序中,用于提前结束本次循环、进行下一次循环的语句是。 A.break B.continue C.return D.exit 29.若有数组定义语句: intt[3][2];则t数组最后一个元素是: 。 A.t[3][2] B.t[2][3] C.t[2] D.t[2][1] 30.设有定义inta[]={1,3,5,7,9},*p=a;while(*p! =3)p++;结果为7的表达式是: A.*(p+2) B.*(p+3) C.*p+2 D.*p+3 31.chara[10];不能将字符串"abc"存储在数组a中的是。 A.strcpy(a,"abc"); B.a[0]=0;strcat(a,"abc"); C.a="abc"; D.inti;for(i=0;i<3;i++)a[i]=i+97;a[i]=0; 32.设有下列函数原型和变量定义语句,则合法的函数调用语句是: 。 intfunc(inta[],intn); inta[10],n,x; A.func(a,n)=x; B.x=func(a,n); C.x=func(a[],n); D.x=func(a[10],n); 33.若有以下定义,输出字母M的语句是: 。 structperson { charname[9]; intage; }; structpersonst[10]= {{"john",17},{"paul",19},{"Mary",18}}; A.printf("%c",st[2].name); B.printf("%c",st[3].name[1]); C.printf("%c",st[2].name[1]); D.printf("%c",st[2].name[0]); 34.需要以写模式打开当前目录下一个名为myfile.txt的文本文件,下列打开文件正确的选项是: 。 A.fopen("myfile.txt","r"); B.fopen("myfile.txt","w"); C.fopen("myfile.txt","rb"); D.fopen("myfile.txt","wb"); 35.假定建立了以下链表结构: structnode{ charid; structnode*next; }*head,*p; 如下图所示: 指针p指向一个新结点,将新结点插入到链表成为头结点的两条C语言语句是。 A.head=p->next;p=head; B.p->data=head;head=p; C.head=p->data;p=head; D.p->next=head;head=p; 36.C语言程序中可以对程序进行注释,注释部分必须用符号_____括起来。 A.{和} B.[和] C./*和*/ D.*/和/* 37.设要定义n为整型变量,定义x为浮点型变量,正确的语句是: _____。 A.intn,floatx, B.intn,floatx; C.intn;floatx, D.intn;floatx; 38.设有intn;从键盘上输入整数给变量n,正确的语句是: _____。 A.scanf(n); B.scanf("n"); C.scanf("%d",n); D.scanf("%d",&n); 39.程序段 intx=3,y=2; printf("%d",x*=y+8/5); 的输出结果为_____。 A.1 B.5 C.7 D.9 40.要判断char型变量m是否是数字,可以使用表达式__________。 A.0<=m&&m<=9 B.m>='0'&&m<='9' C."0"<=m&&m<="9" D.'0'<=m<='9' 41.执行以下代码段后,a的值为_____。 inta=1,b=2,c=3; if(a>b)a=b; if(a>c)a=c; A.1 B.2 C.3 D.不确定 42.下面的for语句执行时,_______将形成无限循环。 A.for(s=j=0;j<100;j+=1)s+=j; B.for(s=j=0;j<100;j+1)s+=j; C.for(s=j=0;j<100;++j)s+=j-1; D.for(s=j=0;j<100;j++)s+=j; 43.循环语句中,break的作用是_______。 A.终止程序运行 B.结束本次循环 C.从本循环体内跳出 D.跳出子函数 44.以下正确的语句是__________。 A.inta[1][4]={1,2,3,4,5}; B.floatx[3][]={{1},{2},{3}}; C.longb[2][3]={{1},{1,2},{1,2,3}}; D.doubley[][3]={0}; 45.执行以下程序段后,m的值是_____。 inta[]={2,1,3,5,4}; intm=10,k,*ptr=a; for(k=0;k<5;k++) m+=*(ptr+k); A.23 B.24 C.25 D.26 46.若有数组定义并初始化语句: chara1[]={’p’,’r’,’o’};chara2[]=〝pro〞;则下列正确的说法是__________。 A.a1和a2完全相同 B.a1和a2不同,a1是指针 C.a1和a2存储单元的数目相同 D.a1和a2不同,a2的存储单元的数目多 47.若有函数调用语句: func(rec1,rec2+rec3,(rec4,rec5)); 则可以判断该函数的参数个数是_______。 A.3 B.2 C.5 D.有语法错误 48.若有以下定义: structperson{ charname[9]; intage;}c[10]={"Wang",19,"Zhang",17,"Li",20,"Zhao",18},*p=&a[0]; 则能打印出字母'L'的语句是_____。 A.printf(“%c”,c[3].name); B.printf(“%c”,c[3].name[1]); C.printf(“%c”,c[2].name[1]); D.printf(“%c”,c[2].name[0]); 49.若要打开A盘根目录下user子目录下名为abc.txt的文本文件进行读、写操作,则下面符合此要求的函数调用是_____。 A.fopen("A: \user\abc.txt","r"); B.fopen("A: \\user\\abc.txt","r+"); C.fopen("A: \user\abc.txt","rb"); D.fopen("A: \\user\\abc.txt","w"); 50.若建立了以下链表结构,如图所示。 指针p指向如图所示的结点,t为与data同类型的数据变量,则交换p所指向的结点的数据和该结点的下一个结点的数据的语句为: t=p->data;__________。 A.p->next->data=p->data;p->data=t; B.p->data=p->next->data;p->next->data=t; C.p->data=t;p->next->data=p->data; D.p->next->data=t;p->data=p->next->data; 51.关于C程序的主函数,以下描述中正确的是: _______。 A.C程序的第一个函数称为主函数,程序从该函数开始运行。 B.C程序可以有多个主函数,程序从第一个主函数开始运行。 C.C程序可以没有主函数,程序从第一个函数开始运行。 D.C程序的主函数即是main函数,程序从该函数开始运行。 52.字符变量a与b分别初始为'S'与'B',正确的语句是: _______。 A.chara,b='S','B'; B.chara='S',charb='B'; C.chara="S",b="B"; D.chara='S',b='B'; 53.设有intn=2010;要求屏幕上显示“n=2010”结果,正确的语句是: _______。 A.printf(n); B.printf("n=",n); C.printf("n=","%d",n); D.printf("n=%d",n); 54.设有变量定义: inta=5,b=8;当执行完语句: b=a a: b-1;之后,变量a和b的值为_______。 A.5和5 B.5和7 C.5和8 D.5和9 55.设intn;判断“n不为0”的表达式是: _______。 A.n==0 B.! (n=0) C.n=! 0 D.n! =0 56.若有定义: floatw;intnum;chars;则合法的switch语句是_______。 A.switch(w){case1.0: printf("*\n");case2.0: printf("**\n");} B.switch(num);{case1printf("*\n");case2printf("**\n");} C.switch(s){case'a': printf("*\n");case'b': printf("**\n");default: printf("\n");} D.switch(num+1){case1: printf("*\n");case1: printf("**\n");default: printf("\n");} 57.以下语句中,循环次数不为10次的语句是_______。 A.for(i=1;i<10;i++); B.i=1;do{i++;}while(i<=10); C.i=10;while(i>0){--i;} D.for(i=10;i>=1;i--}; 58.用于for循环体中的continue语句的作用是_______。 A.终止程序执行 B.终止循环继续 C.结束本次循环 D.重新执行循环 59.若要定义一个int型二维数组a,并使其各元素具有初值: 2300 4050 0000 则正确的定义语句是_______。 A.inta[][]={2,3,0,0,4,0,5,0,0,0,0,0}; B.inta[][4]={2,3,0,0,4,0,5,0,0,0,0,0}; C.inta[3][4]={{2,3},{4,,5}}; D.inta[][]={{2,3,0,0},{4,0,5,0},{0,0,0,0}}; 60.设有语句: intx[]={0,1,2,3,4,5,6,7,8,9},*p=x+5; while(*p++<7); 则语句printf("%d",*p--); 的输出结果为_______。 A.出错 B.x[7]的地址 C.7 D.8 61.下列说明语句中_______是错误的。 A.chara[]='china'; B.chara[]="china"; C.chara[]={"china"}; D.chara[]={'c','h','i','n','a'}; 62.已知函数原型intf(int)和intg(int)。 下列语句中,正确调用函数的语句是_______。 A.intf(3); B.f(intg(3)); C.intg(f(3)); D.p=f(g(3)+1); 63.设有以下结构体定义及初始化: structfs{intfz,fm;}; structfsx={2,3},y={5,7}; 则表达式x.fz*y.fm的结果是: _______。 A.14 B.10 C.21 D.15 64.若定义了文件指针FILE*fp;如要打开当前目录下一个只读文件abc.c并使fp指向该文件,正确的语句是_______。 A.fp=fopen("abc.c","rb"); B.fp=fopen("abc.c","rb+"); C.fp=fopen("abc.c","r"); D.fp=fopen("abc.c","r+"); 65.假定建立了下图所示的链表结构,指针p指向如图所示的结点,已定义q是与p相同类型的指针变量,则将p所指结点的下一个结点从链表中删除的语句是_______。 A.q=p->next;p->next=q->next;free(q); B.q=p->next;free(q);p->next=p->next->next; C.p->next=p->next->next;q=p->next;free(q); D.p->next=q->next;q=p->next;free(q); 66.C程序是由_______组成的。 A.子程序 B.过程 C.子函数 D.主函数和子函数 67.若有定义语句: charc='\n';则变量c_______。 A.包含4个字符 B.包含2个字符 C.包含1个字符 D.说明不合法,c的值不确定 68.设有floatx=1.25;intn=x;则语句printf("%.2f,%d\n",x,n);的输出是: _______。 A.1.25,1.25 B.1,1 C.1,1.25 D.1.25,1 69.设x为int型变量,且初值为'f',则执行printf("%c\n",'A'+(x-'a'+1));后的输出结果是_______。 A.G B.H C.I D.J 70.设有intn;则判断“n为二位数(10至99)”的表达式是: _______。 A.10<=n<=99 B.10<=n||n<=99 C.10<=n,n<=99 D.10<=n&&n<=99 71.下列if语句中,错误的是_______。 A.if(a==b)a--elseb++; B.if(a-b>0)printf("a>b\n"); C.if(x>0&&x<10)y=x*x-1.5; D.if(x)y+=1; 72.设: inti,n; floatsum;则求调和级数s=1+1/2+1/3+...前n项之和的正确循环语句是_______。 A.for(i=1;i<=n;i++)sum+=1/i; B.for(i=1,sum=0.0;i<=n;i++)sum+=1/i; C
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 基础 分析