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