5、为了避免嵌套的if…else语句的二义性,c语言规定else总是与(C)组成配对关系。
A.缩排位置相同的ifB.在其之前未配对的if
C.在其之前未配对的最近的ifD.同一行上的if
6、程序段如下:
则以下说法中正确的是:
(D)。
intk=5;
do
{
k--;
}while(k<=0);
A.循环执行5次B.循环是无限循环
C.循环体语句一次也不执行D.循环体语句执行一次
7、判断char型变量c1是否为小写字母的正确表达是(D)
A.‘a’<=c1<=’z’B.(c1>=a)&&(c1<=z)
C.(‘a’>=c1)||(‘z’<=c1)D.(c1>=’a’)&&(c1<=’z’)
8、C语言中,char类型数据占(A)
A.1个字节B.2个字节C.4个字节D.8个字节
9、以下关于数组的描述正确的是(C)。
A.数组的大小是固定的,但可以有不同的类型的数组元素。
B.数组的大小是可变的,但所有数组元素的类型必须相同。
C.数组的大小是固定的,但所有数组元素的类型必须相同。
D.数组的大小是可变的,但可以有不同的类型的数组元素。
10、在定义inta[10];之后,对a的引用正确的是(D)。
A.a[10]B.a[6.3]C.a(6)D.a[10-10]
11、以下能正确定义数组并正确赋初值的语句是(D)。
A.intn=5,b[n][n];B.inta[1][2]={{1},{3}};
C.intc[2][]={{1,2},{3,4}}D.inta[3][2]={{1,2},{3,4}};
12、在执行inta[][3]={1,2,3,4,5,6};语句后,a[1][0]的值是(A)。
A.4B.1C.2D.5
13、下面变量说明语句中,正确的是(D)
A.char.abc;B.chara;b;c;
C.intx;zD.intx,y;
14、下列数据中,为字符串常量的是(B)
A.AB.“house”C.Howdoyoudo.D.$abc
15、不仅可将C源程序存在磁盘上,还可将数据按数据类型分别以(C)形式存在磁盘上。
A.内存B.缓冲区C.文件D.寄存器
16、已知x=43,ch=’A’,y=0;则表达式(x>=y&&ch<’B’&&!
y)的值是(C)。
A.0B.语法错C.1D.“假”
17、C语言的注释界定符是(D)。
A.{}B.[]C.\**\D./**/
18、若inta,bscanf(“%d%d”,&a,&b);不可以用(A)作为输入的分隔符。
A.,B.空格键C.回车D.Tab键
19、在C语言中,引用数组元素时,其数组下标的数据类型允许是(B)。
A.整型常量B.整型表达式C.整型变量D.任何类型表达式
20、C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符(C)
A.必须为字母B.必须为下划线
C.必须为字母或下划线D.可以是字母、数字和下划线中任一字符
21、以下四项中属于C语言关键字的是(C)
A.CharB.defineC.unsignedD.return
22、以下选项中属于C语言的数据类型是(C)
A.复数型B.逻辑型C.双精度型D.集合型
23、下列常数中不能作为C语言的常量的是(C)
A.0xA5B.2.5e-2C.3e2D.0582
24、能正确表示“当x的取值在[1,10]和[200,210]范围内为真,否则为追假”的表达式是(C)
A.(x>=1)&&(x<=10)&&(x>=200)&&(x<=210)
B.(x>=1)||(x<=10)||(x>=200)||(x<=210)
C.(x>=1)&&(x<=10)||(x>=200)&&(x<=210)
D.(x>=1)||(x<=10)&&(x>=200)||(x<=210)
25、设a=12,且a定义为整型变量。
执行语句a+=a-=a*=a;后a的值为(C)。
A.12B.144C.0D.132
26、以下程序段的输出结果是(C)。
inta=12345;printf(“%2d\n”,a);
A.12B.34C.12345D.提示错误,无结果
27、程序段如下:
则以下说法中正确的是:
(C)。
intk=-20;
while(k=0)k=k+1;
A.while循环执行20次B.循环是无限循环
C.循环体语句一次也不执行D.循环体语句执行一次
28、C语言中用于结构化程序设计的三种基本结构是(A)。
A.顺序结构、选择结构和循环结构B.if、switch、break
C.for、while、do-whileD.if、for、continue
29、以下叙述中正确的是(A)
A.C程序中注释部分可以出现在程序中任意合适的地方
B.花括号“{”和“}”只能作为函数体的定界符
C.构成C程序的基本单位是函数,所以函数名都可以由用户命名
D.分号是C语句之间的分隔符,不是语句的一部分
30、以下说法中正确的是(C)
A.C语言程序总是从第一个函数开始执行
B.在C语言程序中,要调用的函数必须在main()函数中定义
C.C语言程序总是从main()函数开始的执行
D.C语言程序中main()函数必须放在程序的开始部分
31、以下说法中正确的是(C)
A.C程序书写时,不区分大小写字母
B.C程序书写时,一行只能写一个语句
C.C程序书写时,一个语句可分成几行书写
D.C程序书写时每行必须有行号
32、以下说法不正确的是(C)
A.一个C源程序可由一个或多个函数组成
B.一个C源程序必须包含一个main函数
C.在C程序中,注释说明只能位于一条语句的后面
D.C程序的基本组成单位是函数
33、以下关系运算符优先顺序描述中正确的是(C)
A.关系运算符<算术运算符<赋值运算符<逻辑运算符B.逻辑运算符<关系运算符<算术运算符<赋值运算符
C.赋值运算符<逻辑运算符<关系运算符<算术运算符D.算术运算符<关系运算符<逻辑运算符<赋值运算符
34、设x,y,z都是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是(D)
A.‘x’&&’y’B.x<=y
C.x||y+z&&!
yD.!
(xz||1)
35、选择中的条件与循环结构中循环成立的条件,在写法上可以是任一表达式,但其值只能被判断为“真”或者“假”。
哪个作为逻辑“假”值(D)。
A.-1B.1C.非零的数D.0
36、已知字母A的ASCⅡ码为十进制数为65,且c2为字符型,则执行语句c2=’A’+’6’-‘3’后,c2中的值为(A)
A.DB.68C.不确定的值D.C
37、在C语言中,int、char和short三种类型数据在内存中所占用的字节数(D)
A.由用户自己定义B.均为2个字符
C.是任意的D.由所用机器的机器字长所定
38、设C语言中,int类型数据占2个字节,则long类型数据占(C)。
A.1个字节B.2个字节C.4个字节D.8个字节
39、以下标识符中,不能作为合法的C用户定义标识符的是(C)。
A.answerB.toC.signedD._if
40、下面不正确的字符串常量是(A)。
A.‘abc’B.“12’12”C.“0”D.““
41、以下运算符中,优先级别最高的运算符是(C)。
A.*=B.>=C.(类型)D.+
42、下列程序的输出结果是(B)
Main()
{charc1=97,c2=98;
Printf(“%d%c”,c1,c2);
}
A.9798B.97bC,a98D,ab
43、putchar函数可以向终端输出一个(D)
A.整型变量表达式B.字符串
C.实型变量值D.字符或字符型变量值
44、用C语言编写的代码程序(B)
A.可立即执行B.是一个源程序
C.经过编译即可执行D.经过编译解释才能执行
45、以下不正确的C语言标识符是(D)
A.intB.a_1_2C.ablexeD.-x
46、若希望当A值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”,则以下不能满足要求的表达式是(C)
A.A%2==1B.!
(A%2==0)C.!
(A%2)D.A%2
12、设有:
inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=cA.0B.2C.3D.4
47、设x、y、z、t均为int型变量,则执行以下语句后,t的值为(C)
x=y=z=1;
t=++x||++y&&++z;
A.不确定B.4C.3→1D.0
48、已知inta=1,b=2,c=3;以下语句执行后a,b,c的值是(B)
if(a>b)
c=a;a=b;b=c;
A.a=1,b=2,c=3B.a=2,b=3,c=3
C.a=2,b=3,c=1D.a=2,b=3,c=2
49、以下对一维数组a的定义中正确的是(C)。
A.chara(10); B.inta[0..100];
C.inta[5];D.intk=10;inta[k]
50、以下说法正确的是(D)。
A.输入项可以是一个实型常量,如scanf(“f”,3.5);
B.只有格式控制,没有输入项,也能进行正确输入,如scanf(“a=%d,b=%d”);
C.当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(“%4.2f”,&f);
D.当输入数据时,必须指明变量的地址,如scanf(“%f”,&f);
二、填空题(每空2分,计10分)
1、若有说明语句:
intx=1,y=0;表达式(x<=y++)?
‘a’:
‘A’的结果是___A____。
2、在程序运行过程中,其值不能改变的量称之为______常量______,其值可以改变的量称之为_____变量________。
3、常用的循环结构语句有while、_____do-while_______和_______for_____。
4、赋值运算符的作用是将一个数据赋给一个______变量_______。
5、break语句只能用于______循环_______语句和______switch_______语句中。
6、在一个C源程序中,注释部分两侧的分界符分别是____/*____和___*/_____。
7、在C语言中,每个程序都必须有一个_______main______函数。
8、printf函数的“格式控制”包括两部分,它们是_____格式说明符________和______普通字符_______。
9、条件运算符是C语言中唯一的一个____三_____目运算符,其结合性为_____左结合性________。
10、表达式的(int)3.1415926的值是______3_______。
11、一个合理的标识符只能由字母、数字和下划线组成,且第一个字符必须为____字母_________或______下划线_______。
12、在C语言中,字符型数据和整型数据之间可以通用,一个字符数据既能以_____字符________输出,也能以______整数_______输出。
13、在循环结构中,用于强制退出循环的语句是_____break________。
14、C语言程序的语句结束符是____;____。
三、读程序,写出运行结果。
(每题5分,计10分)
1、voidmain()
{
charch[3][5]={"AAAA","BBB","CC"};
printf("\"%s\"\n",ch[1]);
}
BBB回车
2、main()
{charx=‘B’;
switch(x)
{case‘A’:
printf(“ItisA.\n”);
case‘B’:
printf(“ItisB.\n”);
case‘C’:
printf(“ItisC.\n”);
default:
printf(“other.\n”);
}
}
ItisB.
ItisC.
other.
3、#include
main()
{inti,m=1;
for(i=5;i>=1;i--)
{
m=(m+1)*2;
printf("m=%d\n",m);
}}
m=4
m=10
m=22
m=46
m=94
4、#include
voidmain()
{inti,j,m,n;
i=8;
j=10;
m=++i;
n=j++;
printf("%d,%d,%d,%d\n",i,j,m,n);
}
9,11,9,10
5、voidmain()
{inta[3][3]={1,3,5,7,9,11,13,15,17};
intsum=0,i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{a[i][j]=i+j;
if(i==j)
sum=sum+a[i][j];}
printf("sum=%d",sum);}
sum=6
6、下列程序段执行后k值为。
intk=0,i,j;
for(i=0;i<5;i++)
for(j=0;j<3;j++)
k=k+1;
15
四、根据要求,编写程序。
(每题10分,计20分)
1、编写程序,用来判断某一年是否为闰年。
#include
main()
{
inty;
printf("Inputyear:
");
scanf("%d",&y);
if(y%400==0||y%4==0&&y%400==1)
printf("ItisLeapYear!
\n");
else
printf("ItisnotLeapYear!
\n");
}
2、求1!
+2!
+3!
+……+n!
#include
main()
{
inti,j,n;
longp=1,sum=0;
printf("inputn=");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
p=1;
for(j=1;j<=i;j++)
p*=j;
sum+=p;
}
printf("1!
+2!
+3!
+...+n!
=%ld\n",sum);
}_
3、
#include
main()
{
inti,j;
longp=1,sum=0;
for(i=1;i<=20;i++)
{
p=1;
for(j=1;j<=i;j++)
p*=j;
sum+=p;
}
printf("1!
+2!
+3!
+...+20!
=%ld\n",sum);
}_
4、任意给定10个整数,由用户输入一个数,查找并统计这个数在这10个整数中出现的次数,并输出次数,若未找到,则显示未找到。
#include
main()
{
inta[10];
inti,c,n=0;
printf("Pleaseinputtennumbers:
");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("Pleaseinputanumber:
");
scanf("%d",&c);
for(i=0;i<10;i++)
if(c==a[i])
n++;
if(n==0)
printf("Notfound!
\n");
else
printf("n=%d\n",n);
}
5、求100以内能被7整除的自然数之和。
#include
main()
{
inti,sum=0;
for(i=0;i<=100;i++)
if(i%7==0)
sum=sum+i;
printf("sum=%d\n",sum);
}
6、任意输入10个数构成一维数组,求其中的最大值和最小值。
#include
main()
{
inta[10],max,min,i;
printf("Pleaseinputtennumbers:
");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
max=min=a[0];
for(i=0;i<10;i++)
{
if(maxmax=a[i];
if(min>a[i])
min=a[i];
}
printf("max=%d,min=%d\n",max,min);
}
7、用for语句求1+2+3+…+100。
#include
main()
{
inti,sum=0;
for(i=0;i<=100;i++)
sum=sum+i;
printf("sum=%d",sum);
}
8、任意给定10个整数,由用户输入一个数,查找并统计这个数在这10个整数中出现的次数,并输出次数,若未找到,则显示未找到。
#include
main()
{
inta[10];
inti,c,n=0;
printf("Pleaseinputtennumbers:
");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("Pleaseinputanumber:
");
scanf("%d",&c);
for(i=0;i<10;i++)
if(c==a[i])
n++;
if(n==0)
printf("Notfound!
\n");
else
printf("n=%d\n",n);
}
9、打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。
例如153是一个水仙花数,因为153=
。
#include
main()
{
inti,j,k,n=100;
for(n=100;n<1000;n++)
{
i=n/100;
j=n%100/10;
k=n%10;
if(n==i*i*i+j*j*j+k*k*k)
printf("%d%d%d\n",i,j,k);
}
}
10、输入一个整数,判断其是奇数还是偶数
#include
main()
{
inta;
printf("Pleaseinputanumber:
");
scanf("%d",&a);
if(a%2==0)
printf("Itisaevennumber!
\n");
else
printf("Itisaoddnumber!
\n");
}