C.a>10&&a<15D.!
(a<=10)&&!
(a>=15)
41.inta=0;if(a=1)a+=10;结果的值是(B)。
A.0B.11C.10D.出错
42.下列表达式中符合C语言语法的赋值表达式是(C)。
A.a=7+b+c=a+7B.a=7+b++=a+7C.a=(7+b,b++,a+7)D.a=7+b,c=a+7
43.设f是实型变量,下列表达式中不是逗号表达式的是(D)。
A.f=3.2,1.0B.f>0,f<10C.f=2.0,f>0D.f=(3.2,1.0)---赋值表达式
44.下列表达式中,不正确的表达式是(B)。
A.a=1,b=1B.y=int(x)C.a=b=5D.i++
47.设有整型变量a=35,表达式(a&15)&&(a|15)的值是(B)。
A.0B.1C.15D.35
52.设a是char型变量,其值字符为’1’,则把其值变成整数1的表达式是(C)。
A.(int)aB.int(a)C.a=a-48D.a/(int)a
53.设a是int型变量,其值为3,则把其值变成字符’3’的表达式是(D)。
A.(char)aB.a=3C.a=a-48D.a=a+48
54.设ch是char型变量,其值为’A’,则下面表达式的值是(B)。
ch=(ch>=’A’&&ch<=’Z’)?
(ch+32):
ch
A.AB.aC.ZD.Z
55.设有整型变量i,j,k,i值为3,j值为6。
计算表达式k=i^j<<3;后,k的值是(B)。
A.56B.51C.40D.27
58.下列格式符中,哪一个可以用于以8进制形式输出整数(C)。
A、%dB、%8dC、%oD、%ld
59.下列格式符中,哪一个可以用于以16进制形式输出整数(B)。
A、%16dB、%8xC、%d16D、%d
60.a是int类型变量,c是字符变量。
下列输入语句中哪一个是错误的(B)。
A、scanf(”%d,%c”,&a,&c);B、scanf(”%d%c”,a,c);
C、scanf(”%d%c”,&a,&c);D、scanf(”d=%d,c=%c”,&a,&c);
61.字符变量ch=’A’,int类型变量k=25,语句printf(”%3d,%d3\n”,ch,k);输出(A)。
A、65,253B、65253C、65,25D、A25
63.使用scanf(“x=%f,y=%f”,&x,&y);要使x,y均为1.25,正确的输入是(C)。
A.1.25,1.25B.1.251.25C.x=1.25,y=1.25D.x=1.25y=1.25
64.要使doublex;longa;获得数据,正确的输入语句是(C)。
A.scanf(“%d,%f”,&a,&x);B.scanf(“%f,%1d”,&x,&a);
C.scanf(“%ld,%1f”,&a,&x);D.scanf(“%1d,%1f”,a,x);
67.设有inti=010,j=10;则printf(“%d,%d\n”,++i,j--);的输出的是(B)。
A.11,10B.9,10C.010,9D.10,9
68.设a、b为字符型变量,执行scanf(“a=%c,b=%c”,&a,&b);
后使a为’A’,b为’B’,从键盘上的正确输入是(D)。
A.‘A’’B’B.‘A’,’B’C.A=A,B=BD.a=A,b=B
二、填充题
1.无符号基本整型的数据类型符为unsigned,双精度实型数据类型符为double,
字符型数据类型符为char。
7.设下列运算符:
<<、+、++、&&、<=,其中优先级最高的是++,优先级最低的
是&&。
10.设a=3,b=2,c=1,则a>b的值为1,a>b>c的值为0(a>b>ca>b为11>c假为0)。
11.若已知a=10,b=20,则表达式!
a
a为00
12.设x和y均为int型变量,且x=1,y=2,则表达式1.0+x/y的值为1.0(x/y为0整除)。
14.设floatx=2.5,y=4.7;inta=7;,表达式x+a%3*(int)(x+y)%2/4的值为2.5。
16.intx=17,y=5;执行语句x%=x++/--y后x的值为2。
17.ch是字符变量,判断ch是英文字母的逻辑表达式为ch>=’a’&&ch<=’z’||
ch>=’A’&ch<=’Z’.
19.判断变量a、b的值均不为0的逻辑表达式为a!
=0&&b!
=0。
23.求解赋值表达式a=5+(c=6)后表达式值、a、c的值依次为11,11,6。
27.求变量a、b中最大值的条件表达式为a>b?
a:
b。
28.若a=13、b=25、c=-17,条件表达式((y=(a
a:
b)y:
c的值为-17。
33.inta=7,b=6,c=5;,表达式(a+b)>(c*c)&&b==c||c>b的值为0。
34.inta=3,b=5,c=7;,表达式a>c||c>b!
=0&&c==b+a的值为0。
第三章程序设计结构
一、单项选择题
1.假定所有变量均已正确定义,下列程序段运行后y的值是(A)。
inta=0,y=10;
if(a=0)y--;elseif(a>0)y++;elsey+=y;
A.20B.11C.9D.0
2.假定所有变量均已正确定义,下列程序段运行后x的值是(B)。
a=b=c=0,x=35;
if(!
a)x--;elseif(b);if(c)x=3;elsex=4;
A.34B.4C.35D.3
4.下列各语句序列中,能够且仅输出整型变量a、b中最大值的是(C)。
A、if(a>b)printf(”%d\n”,a);printf(”%d\n”,b);
B、printf(”%d\n”,b);if(a>b)printf(”%d\n”,a);
C、if(a>b)printf(”%d\n”,a);elseprintf(”%d\n”,b);
D、if(a
5.下列各语句序列中,能够将变量u、s中最大值赋值到变量t中的是(B)。
A、if(u>s)t=u;t=s;B、t=s;if(u>s)t=u;
C、if(u>s)t=s;elset=u;D、t=u;if(u>s)t=s;
6.下列各语句中,能够输出整型变量a、b中最大值的是(D)。
A、printf(”%d\n”,(a>b)?
a,b);B、(a>b)?
printf(”%d”,a):
printf(”%d”,b);
C、printf(”%d”,if(a>b)aelseb);D、printf(”%d\n”,(a>b)?
a:
b);
7.下列语句应将小写字母转换为大写字母,其中正确的是(B)。
A、if(ch>=’a’&ch<=’z’)ch=ch-32;B、if(ch>=’a’&&ch<=’z’)ch=ch-32;
C、ch=(ch>=’a’&&ch<=’z’)?
ch-32:
’’;D、ch=(ch>’a’&&ch<’z’)?
ch-32:
ch;
8.inta=1,x=1;循环语句while(a<10)x++;a++;的循环执行(A)。
A.无限次B.不确定次C.10次D.9次
9.下列语句中,错误的是(B)。
A.while(x=y)5;B.dox++while(x==10);
C.while(0);D.do2;while(a==b);
10.循环语句for(x=0,y=0;(y!
=123)||(x<4);x++);的循环执行(A)。
A.无限次B.不确定次C.4次D.3次
11.循环语句for(i=0,x=1;i=10&&x>0;i++);的循环执行(A)。
A.无限次B.不确定次C.10次D.9次
12.i、j已定义为int类型,则以下程序段中内循环体的执行次数是(A)。
for(i=5;i;i--)
for(j=0;j<4;j++){………}
A.20B.24C.25D.30
13.C语言while语句中,用于条件的表达式是(D)
A.关系表达式B.逻辑表达式C.算术表达式D.任意表达式
14.while循环,执行次数是(A)
i=4;while(--i)printf(“%d”,i);
A.3次B.4次C.0次D.无数次
二、填充题
1.结构化程序设计规定的三种基本结构是顺序结构、选择结构和循环结构。
2.三种循环语句是等价的。
3.当循环体中的switch语句内有break语句,则只跳出switch语句。
同样,当switch
语句中有循环语句,内有break语句,则只跳出循环语句。
4.循环体中的continue语句是结束本次循环。
10.程序段ints,i;for(i=1;i<=100;s+=i,i++);能否计算1~100的和?
不能,
原因是s没有初试为0。
11.若int类型变量字长为2,程序段intjc=1;for(inti=2;i<10;i++)jc*=i;能否
计算10的阶乘?
不能计算10阶乘,原因是i<10,且inti不能表示10阶乘。
12.设i,j,k均为int型变量,则执行完下面的for循环后,k的值为10。
for(i=0,j=10;i<=j;i++,j--)k=i+j;
13.下列程序的功能是输入一个正整数,判断是否能被3或7整除,若能整除,输出“YES”,
若不能整除,输出“NO”。
请为程序填空。
voidmain()
{intk;
scanf(“%d”,&k);
if((k%3==0)||(k%7==0))printf(“YES\n”);elseprintf(“NO\n”);
}
三、程序分析题
1.阅读程序,写出运行结果。
10,4,3
voidmain()
{inta=10,b=4,c=3;
if(a
if(aprintf(“%d,%d,%d\n”,a,b,c);
}
3.写出下列程序段输出结果3
intk,a=1,b=2;
k=(a++==b)?
2:
3;printf(“%d”,k);
4.阅读下列程序,写出程序运行的输出结果。
852
voidmain()
{inty=9;
for(;y>0;y--)
if(y%3==0){printf(“%d”,--y);continue;}
}
第四章数组
(一)单项选择题
1.若有以下数组说明,则数值最小的和最大的元素下标分别是(B)。
inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};
A.1,12B.0,11C.1,11D.0,12
2.若有以下说明,则数值为4的表达式是(D)。
inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};charc=’a’,d,g;
A.a[g-c]B.a[4]C.a[‘d’-‘c’]D.a[‘d’-c](即a[‘d’-‘a’])
3.设有定义:
chars[12]=“string“;,则printf(“%d\n”,strlen(s));的输出是(A)。
A.6B.7C.11D.12
4.设有定义:
chars[12]=“string“;则printf(“%d\n“,sizeof(s));的输出是(B)。
A.6B.7C.11D.12
5.合法的数组定义是(A)。
A.chara[]=“string“;B.inta[5]={0,1,2,3,4,5};
C.chara=“string“;D.chara[]={0,1,2,3,4,5}
6.合法的数组定义是(B)。
A.inta[3][]={0,1,2,3,4,5};B.inta[][3]={0,1,2,3,4};
C.inta[2][3]={0,1,2,3,4,5,6};D.inta[2][3]={0,1,2,3,4,5,};
7.下列语句中,正确的是(D)。
A.chara[3][]={‘abc’,‘1’};B.chara[][3]={‘abc’,’1’};
C.chara[3][]={‘a’,“1”};D.chara[][3]={“a“,“1“};
8.下列定义的字符数组中,输出printf(“%s\n”,str[2]);的输出是(C)。
staticstr[3][20]={“basic“,“foxpro“,“windows“};
A.basicB.foxproC.windowsD.输出语句出错
9.下列各语句定义了数组,其中哪一个是不正确的(C)。
A、chara[3][10]={”China”,”American”,”Asia”};B、intx[2][2]={1,2,3,4};
C、floatx[2][]={1,2,4,6,8,10};D、intm[][3]={1,2,3,4,5,6};
10.数组定义为inta[3][2]={1,2,3,4,5,6},值为6的数组元素是(B)。
A、a[3][2]B、a[2][1]
C、a[1][2]D、a[2][3]
12.函数调用strcat(strcpy(str1,str2),str3);的功能是(C)。
A.将字符串str1复制到字符串str2中后再连接到字符串str3之后。
B.将字符串str1连接到字符串str2之后再复制到字符串str3之后。
C.将字符串str2复制到字符串str1中后再将字符串str3连接到字符串str1之后。
D.将字符串str2连接到字符串str1之后再将字符串str1复制到字符串str3中。
13.有字符数组定义如下,则合法的函数调用是(A)
chara[]=“Iamastudent“,b[]=“teacher“;
A.strcmp(a,b);B.strcpy(a,b[0]);C.strcpy(a[7],b);D.strcat(a[7],b);
14.有字符数组定义如下,则不能比较a,b两个字符串大小的表达式是(D)
chara[]="abcdefg",b[]="abcdefh";
A.strcmp(a,b)==0B.strcmp(a,b)>0C.strcmp(a,b)<0D.a
(二)填充题
1.C语言中,数组的各元素必须具有相同的类型,元素的下标下限为0,但在程序执行过程中,不检查元素下标是否越界。
下标必须是正整数、0、或者整型表达式。
2.C语言中,数组在内存中占一片连续的存储区,由数组名代表它的首地址。
数组名是一个地址常量,不能对它进行加、减和赋值运算。
3.执行staticintb[5],a[][3]={1,2,3,4,5,6};后,b[4]=0,a[1][2]=6。
4.设有定义语句staticinta[3][4]={{1},{2},{3}};则a[1][0]值为2a[1][1]值为0,
a[2][1]的值为0。
5.设有定义语句staticchara[10]="abcd";则a[3]值为‘d’,a[5]值为‘\0’。
7.如定义语句为chara[]="windows",b[]="95";,
语句printf("%s",strcat(a,b));的输出结果为windows95。
8.定义语句为chara[15],b[]="windows95";,则语句printf("%s",strcpy(a,b));
的输出结果为windows95。
9.定义语句为chara[]=”Box”,b[]=”Boss”;,语句printf(”%d”,s