k:
c
c:
a);
}
A)4B)3C)2D)1
10、有C语言中while和do-while循环的主要区别是(A)。
A)do-while的循环体至少无条件执行一次
B)while的循环控制条件比do-while的循环控制条件严格
C)do-while允许从外部转到循环体内
D)do-while的循环体不能是复合语句
11.逗号表达式(a=3*5,a*4),a+15的值为(C ),a的值是( C)。
①A.15 B.60 C.30 D.不确定
②A.60 B.30 C.15 D.90
20.有如下程序段:
inta1,a2;
charc1,c2;
scanf("%d%c%d%c",&a1,&c1,&a2,&c2);
若要求a1,a2,c1,c2的值分别为10,20,A,B正确的数据输入是(C)。
A.10A20B
B.10A20B
C.10A20B
D.10A20B
11、以下程序段(C)。
x=-1;
do{x=x*x;}while(!
x);
A)是死循环 B)循环执行两次
C)循环执行一次 D)有语法错误
12、下面正确的字符常量是(C)
A)“C”B)‘\\’’C)‘W’D)‘’
13、下面四个选项中,均是正确的八进制或十六进制数的选项是(C)。
A)—10B)0abcC)0010D)0a12
0x8f—017—0x11—0x123
—0110xc0xf1—0xa
14、以下不正确的叙述是(D。
A)在C语言中,逗号运算符的优先级最底。
B)在C程序中,APH和aph是两个不同的量。
C)若a和b类型相同,在计算赋值表达式a=b后b中的值将放入a中,而b中的值不变。
D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值。
15、在C语言中,要求运算数必须是整型的运算符是(D)。
A)/B)++C)!
=D)%
16.若以下变量均是整型,且num=sum=7;则计算表达式Sum=num++,sUM++,++num,后sum的值为(A)。
A)7 B)8 C)9 D)10
17.若有以下定义,则能使值为3的表达式是(D)。
intk=7,x=12;
A)x%=(k%=5) B)x%=(k-k%5)
C)x%=k-k%5 D)(x%=k)-(k%=5)
18.一个C语言程序是由(B)。
A)一个主程序和若干个子程序组成 B)函数组成
C)若干过程组成 D)若干子程序组成
19.Putchar函数可以向终端输出一个(D)。
A)整型变量表达式值 B)实型变量值
C)字符串 D)字符或字符型变量值
20.Printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。
如果字符串长度小于5,则输出按方式(C)。
A)从左起输出该字串,右补空格
B)按原字符长从左向右全部输出
C)右对齐输出该字串,左补空格
D)输出错误信息
21.有如下程序,若要求a1,a2,c1,c2的值分别为10、20、A、B,正确的数据输入是( A)。
main()
{
inta1,a2;
charc1,c2;
scanf("%d%d",&a1,&a2);
scanf("%c%c",&c1,&c2);
}
A.1020AB
B.1020
AB
C.1020ABC
D.1020AB
22.有如下程序,输入数据:
12345678后,x的值是(B ),y的值是(A )
。
#include
main()
{
intx;
floaty;
scanf("%3d%f",&x,&y);
}
(1)A.12345 B.123 C.45 D.345
(2)A.45.000000 B.45678.000000 c.678.000000 D.123.000
26.以下程序的执行结果是(A )。
#include
main()
{
intsum,pad;
sum=pad=5;
pad=sum++;
pad++;
++pad;
printf("%d\n",pad);
}
A.7 B.6 C.5 D.4
27.以下程序的执行结果是(B)。
#include
main()
{
inti=010,j=10;
printf("%d,%d,%d\n",++i,j,j--);
}
A.11,9,10 B.9,9,10 C.010,9,9 D.10,9,9
28.已知字母A的ASCII码是65,以下程序的执行结果是(D)。
#include
main()
{
charc1='A',c2='Y';
printf("%d,%d\n",c1,c2);
}
A.A,Y B.65,65 C.65,90 D.65,89
29.以下程序的执行结果是(A)。
#include
#include
main()
{
inta=1,b=4,c=2;
floatx=10.5,y=4.0,z;
z=(a+b)/c+sqrt((double)y)*1.2/c+x;
printf("%f\n",z);
}
A.14.000000 B.15.000000 C.13.700000 D.14.900000
30.为了避免嵌套的if-else语义的二义性,C语言规定else总是与(A )
A.缩排位置相同的if
B.在其之前未配对的的if
C.在其之前未配对的最近的if
D.同一行上的if
21.已有定义intx;floaty;且执行scanf(“%3d%f”,&x,&y);语句时,从第一列开始输入数据12345678<回车>,则x的值为(B),y的值为(B)。
1)A)12345B)123C)45D)345
2)A)无定值 B)45.000000C)678.000000D)123.000000
22.已知ch是字符型变量,下面不正确的赋值语句是(A)。
A)ch=’a+b’;B)ch=’\0’;C)ch=’7’+’9’;D)ch=5+9;
23.逻辑运算符两侧运算对象的数据类型(D)。
A)只能是0或1B)只能是0或非0正数
C)只能是整数或字符型数据D)可以是任何类型的数据
24.执行下列程序
main()
{inta[3][3]={{1},{2},{3}};
intb[3][3]={1,2,3};
printf(″﹪d\n″,a[1][0]+b[0][0]);}
后输出的结果是(D)
A)0B)1C)2D)3
25.设x,y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是(D)。
A)’x’&&’y’B)x<=yC)x||y+z&&y-zD)!
((xz||1)
26.以下正确的描述是(B)。
A)continue语句的作用是结束整个循环的执行
B)只能在循环体内和switch语句体内使用break语句
C)在循环体内使用break语句或continue语句的作用相同
D)从多层循环嵌套中退出时,只能使用goto语句
27.若有说明:
inta[3][4];则对a数组元素的正确引用是(C)。
A)a[2][4]B)a[1,3]C)a[1+1][0]D)a
(2)
(1)
28.C语言规定,函数返回值的类型是由(D)。
A)语句中的表达式类型所决定
B)调用该函数时的主调函数类型所决定
C)调用该函数时系统临时决定
D)在定义该函数时所指定的函数类型所决定
29.下面程序段的运行结果是(C)。
char*s=”abcde”;
s+=2;
printf(”%d”,s);
A)cdeB)字符’c’C)字符’c’的地址D)不确定
30.下面程序段的运行结果是(B)。
charstr[]=”ABC”,*p=str;
printf(”%d\n”,*(p+3));
A)67B)0C)字符’C’的地址D)字符’C’
二、填空题
1.一个C程序有且仅有一个main_函数。
2.一个C源程序有____1____个main()函数和____若干____个其他函数。
3.结构化设计中的三种基本结构是顺序分支循环________。
4.C程序的执行是从_main的第一个语句_______开始执行的。
5.C语言源程序的语句分隔符是__分号______。
6.C语言开发的四个步骤是编辑编译连接运行__。
7.表达式10/3的结果是___3_____。
8.表达式10%3的结果是1________。
9.定义intx,y;执行y=(x=1,++x,x+2);语句后,Y的值是-4-----。
10.设intx=9,y=8;表达式x==y+1的结果是_1________。
1.C源程序的基本单位是(函数)。
2.在C语言中的实型变量分为两种类型,它们是(单精度型)和(双精度型)。
3.所有的程序都可以用三种控制结构编写,这三种控制结构是(顺序),(选择)和(循环).
4.在C语言中,二维数组元素在内存中的存放顺序是(按行存放)。
5.C语言规定,简单变量作实参时,它和对应形参之间的数据传递方式为(单向值传递)。
6.C语言中,一个函数一般由两个部分组成,它们是(声明部分)和(执行部分)。
7.在C语言中,char型数据在内存中的存储形式是(ASCII码)。
8、设在C语言中,一个int型数据在内存中占2个字节,则unsignedint型数据的取值范围为(0——65535)。
9、若有以下定义intm=5,y=2;,则计算表达式y+=y-=m*=y后的y值是(-16)。
10、C语言中允许函数值类型缺省定义,此时该函数值隐含的类型是(整型)。
11.若x和a均是int型变量,则计算表达式
(1)后的x值为(12,计算表达式
(2)后的x值为(4)。
(1)x=(a=4,6*2)
(2)x=a=4,6*2
12.C语言中,唯一的三目运算符是(条件运算符)。
13.有以下定义:
intw[10];
则w数组元素下标的上限为(9),下限为(0)。
14.下面程序段的运行结果是(3)。
charc[]=”\t\v\\\0will\n”;
printf(”%d”,strlen(c));
三、读程序写结果题
1.以下程序的执行结果是_#&________
#include
main()
{inta=2,b=7,c=5;
switch(a>0)
{case1:
switch(b<0)
{case1:
printf("@");break;case2:
printf("!
");break;}
case0:
switch(c==5)
{case0:
printf("*");break;
case1:
printf("#");break;
default:
printf("$");break;}
default:
printf("&");}
printf("\n");}
2.下列程序运行后的输出结果是_s=7__
#include
main()
{ints=0,k;
for(k=7;k>=0;k--)
{switch(k)
{case1:
case4:
case7:
s++;break;
case2:
case3:
case6:
break;
case0:
case5:
s+=2;break;}
}
printf("s=%d\n",s);}
3.下列程序运行后的输出结果是__sum=33______。
#include
main()
{inti,j,sum,m,n=4;
sum=0;
for(i=1;i<=n;i++){m=1;for(j=1;j<=i;j++)m=m*j;sum=sum+m;
}
printf("sum=%d\n",sum);
}
1.如果运行时输入字符‘Q’,则下面程序的运行结果是:
Q
#include
main()
{charch;
scanf(“%c”,&ch);
ch=(ch>=’A’&&ch<=’Z’)?
(ch+32):
ch;
ch=(ch>=’a’&&ch<=’z’)?
(ch-32):
ch;
printf(“%c”,ch);
}
2.下面程序段的运行结果是:
**1**
**3**
intx=1,y=0;
switch(x)
{case1:
switch(y)
{case0:
printf(“**1**\n”);break;
case1:
printf(“**2**\n”);break;
}
case2:
printf(“**3**\n”);break;
}
3.下面程序的运行结果是:
*#*#*#$
#include
main()
{inti;
for(i=1;i<=5;i++)
{if(i%2)printf(“*”);
elsecontinue;
printf(“#”);
}
printf(“$\n”);
}
4.下面程序的运行结果是:
LBLMNP
#include
main()
{chara[80]=”AB”,b[80]=”LMNP”;
inti=0;
strcat(a,b);
while(a[i++]!
=’\0’)b[i]=a[i];
puts(b);
Theresultis:
1
67
111213
16171819
2122232425
67
7
87
9
107
11
127
13
147
15
167
17
187
111213
16171819
2122232425
}
5.下面程序的运行结果是:
#include
main()
{inta[5][5],i,j,n=1;
for(i=0;i<5;i++)
for(j=0;j<5;j++)
a[i][j]=n++;
printf(“Theresultis:
\n”);
for(i=0;i<5;i++)
{for(j=0;j<=i;j++)
printf(“%4d”,a[i][j]);
printf(“\n”);
}
}
6.下面程序的运行结果是:
K=13
#include
main()
{longk;
k=fib(7);
printf(“k=%d\n”,k);
}
longfib(intg)
{switch(g);
{case0:
return0;
case1:
case2:
return1;
}
return(fib(g-1)+fib(g-2));
}
7.下面程序的运行结果是:
28
#include
main()
{intx,i;
for(i=1;i<=50;i++)
{x=i;
if(++x%2==0)
if(++x%3==0)
if(++x%7==0)
printf(“%d”,i);
}
}
8.下面程序的运行结果是:
i=7,j=6,x=7
I=2,j=7,x=5
#include
main()
{i=2,x=5,j=7;
fun(j,6);
printf(“i=%d,j=%d,x=%d\n”,i,j,x);
}
fun(inti,intj)
{intx=7;
printf(“i=%d,j=%d,x=%d\n”,i,j,x);
}
9.下面程序的运行结果是:
gae
#include
main()
{chara[]=”language”,b[]=”programe”;
char*p1,*p2;
intk;
p1=a;p2=b;
for(k=0;k<=7;k++)
if(*(p1+k)==*(p2+k))
printf(“%c”,*(p1+k));
}
10.下面程序的运行结果是:
aabcabc
#include
main()
{char*p1,*p2,str[50]=”abc”;
p1=”abc”;
p2=”abc”;
strcpy(str+1,strcat(p1,p2));
printf(“%s\n”,str);
}
五、编程题
1.兔子繁殖问题。
设有一对新生的兔子,从第三个月开始,它们每个月都生一对兔子。
按照这样的规律,并假设兔子没有死亡,一年后共有多少兔子。
2.