c练习三_11_06_09 答案_三只小猪练习题集答案
c练习三_11_06_09 答案由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“三只小猪练习题集答案”。
综合强化练习三
一、单选题(共30分)1.下列叙述中错误的是(A)。
A、主函数中定义的变量在整个程序中都是有效的 B、在其他函数中定义的变量在主函数中不能使用 C、形式参数也是局部变量
D、复合语句中定义的变量只在该复合语句中有效 2.以下叙述中正确的是(C)。
A、C语言比其他语言高级
B、C语言可以不用编译就能被计算机识别执行
C、C语言以接近英语国家的自然语言和数学语言作为语言的表达式
D、C语言出现的最晚,具有其他语言的一切优点 1.(A)是C程序的基本构成单位。
A、函数
B、函数和过程 C、超文本过程
D、子程序
2.C语言规定,必须用(C)作为主函数名。
A、function
B、include
C、main
D、stdio 3.以下(A)是C语言提供的关键字。
A、continue
B、procedure
C、begin
D、append 4.下列可以作为变量名的是(C)。
A、+a
B、123425e
C、a3B
D、5e+0 5.在C语言中以下合法的字符常量是(C)。
A、’ 824’
B、’x243’
C、’0’
D、” ” 6.设d为字符变量,则下列表达式不正确的是(C)。
A、d='m'
B、d=97
C、d=“a”
D、d='101' 7.表达式(double)(23/3)的值是(B)。A、4 B、7.0 main(){ int x=4, y=0,z;
} A、14 40
B、20 0
C、20 4
D、14 4 9.已知year为整型变量,不能使表达式(year%4= =0&&year%100!=0)||(year%400= =0)的值是1的整型数据是(A)。
A、1990
B、1988
C、1992
D、2000 10.若x=4,y=z=3,则下列表达式的值分别是(A)。(1)(z>=y>=x)?1:0(2)y+=z, x*=y A、0 24
B、1 8
C、0 8
D、1 12 11.若已定义a和b为double类型,则表达式:a=1,b=a+3/2的值是(C)。
A、1.0
B、1.5
C、2.0
D、3.0 12.若有定义:int m, n;char a, b, c;在程序运行时输入数据
15.有如下程序段:
int n=25;while(n>22){ n--;
printf(“%dn”,n);} x*=3+2;printf(“%dt”,x);x*=(y= =(z=4));printf(“%d”,x);
C、7.7
D、3 8.下列程序的输出结果是(B)。
}
A、1 3
B、3 5
C、5 3
D、5 5 14.有程序段如下: i=1;
for(;i
与上面的语句不等价的是(C)。A、for(i=1;;i++)
{
sum+=i;
if(i= =10)break;} C、i=1;
for(;i
sum=sum+i;
D、i=1;
for(;;){ sum=sum+i;if(i= =10)break;}
i++;
}
B、for(i=1;i
i++;6(回车)YOU(回车)
则把整数5赋值给m,把整数6赋值给n,把字符Y赋值给a,把字符O赋值给b,把字符U赋值给c,以下哪一个是正确的程序段(A)。
A、scanf(“%d□%d□%c□%c□%c”,&m,&n,&a,&b,&c);(□代表空格)
B、scanf(“%d, %d”, &m, &n);a=getchar();b=getchar();c=getchar();
C、scanf(“m=%d,n=%d”,& m, &n);a=getchar();b=getchar();c=getchar();
D、scanf(“%d%d%c%c%c”,&m,&n,&a,&b,&c);13.下列程序的运行结果是(D)。#include main(){
int x, y=1;if(y!=0)
x=5;printf(“%dt”,x);if(y= =0)else x=5;
printf(“%dn”,x);
x=3;} 则以上循环的输出结果是(B)。A、22
B、24
C、23
D、1
0 16.以下能正确表示x的取值范围在[15,80]和[-5,-1]内的表达式是(B)。
A、(x=-1)&&(x=80)B、(x>=-5)&&(x=15)&&(x=-5)||(x=15)||(x=-1)&&(x=80)17.以下能正确判断字符型变量ch为小写字母的表达式是(C)。
A、(ch>='a')AND(ch
B、(ch>='a')&(ch='a')&&(ch
D、(ch>='a')||(ch main(){ int a=23, b=c=0;if(a=b+c)printf(“I like itn”);else
printf(“I hate itn”);} 以上程序(D)。
A、通过编译,但不能连接
B、输出I like it
C、输出I hate it
D、不能通过编译(因为有语法错误)19.下列程序的输出结果是(B)。main(){ int m, a, b;
} A、1 1 0
B、2 1 1
C、0 1 0
D、1 0 1 20.下列语句正确的是(A)。A、char string[]=”china”;B、char string[];string=”china”;
C、char string1[], string2[]=”china”;
string1=string2;D、char string1[], string2[];string2=”china”;
strcpy(string1, string2);a=1;b=1;m=0;m=a++||b++;printf(“n%d %d %dn”, a, b, m);
printf(“%3d”,a[i][2-i]);
A、2 4 6 B、2 4 8 C、3 5 7 D、3 6 7
23.假设arr是一个有20个元素的整型数组,则下列写法中正确的是(A)。
A、arr[0]=2 B、arr=0 C、arr[20]=0 D、arr[-2]=0 24.已知整型变量i的值为3,其内存地址为1000,p为指向int变量的指针变量。若使p指向i,则下列赋值正确的是(D)。
A、&i=3
B、*p=3
C、*p=1000
D、p=&i 25.共用体类型变量在程序执行期间(B)。A、所有成员一直驻留在内存中 B、只有一个成员驻留在内存中
C、部分成员驻留在内存中
D、没有成员驻留在内存中 26.以下循环体的执行次数是(C)。main(){ int i, j;
}
A、3
B、2
C、1
D、0
27.执行下列程序段后,变量k中的值是(B)。
int k=3, s[2];s[0]=k;k=s[1]*10;
A、33 B、不确定值
C、30 D、10 28.下面程序段的执行结果是(B)int x=100;do
x+=1;
while(x>120);
printf(“%d”,x);
A、100
B、101
C、120
D、121 29.以下叙述中正确的是(BC)。
A、全局变量的作用域一定比局部变量的作用域范围大 B、静态(static)类别变量的生存期贯穿于整个程序的运行期间 C、函数的形参都属于局部变量
D、未在定义语句中赋初值的auto变量和static变量的初值都是随机值
30.在对文件的操作中,对文件进行打开操作的标准库函数是(C)。
A、fgetc
B、fputc
C、fopen
D、fclose
二、填空题。(共10分)
1.若有语句“printf(“%0.2f”,23.528);”,则输出__23.53__。
2.在C语言中,输入操作是由库函数____scanf______完成的,输出操作是由库函数___printf_____完成的。
3.若a、b和c均是int型变量,则执行表达式a=(b=4)+(c=2)后,a、b、c的值分别为__6____、__4____、__2___。
4.C语言中,数组名是一个___地址_____常量,代表_数组的首地址______,不能对其进行赋值操作。
5.定义一个包含4行5列共20个float型元素的二维数组arr的形式是__float arr[4][5]____。2
for(i=0, j=1;i
printf(“%dn”,i);
21.如果在一个函数的复合语句中定义了一个变量,则该变量(A)。
A、只在该复合语句中有效,在该复合语句外无效 B、在该函数中任何位置都有效 C、定义方法错误,其变量为非法变量 D、在本程序的原文件范围内均有效 22.以下程序段的输出结果是(C)。int i;int a[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i
三、读程序写执行过程(共40分,每题5分)
1、#include main()
{ int i, j, x, y;i=9;j=11;x=++i;y=j++;
printf(“%d,%d,%d,%dn”,i, j, x, y);
}10,12,10,112、#include main(){
int a, b, c;a=2;b=4;if(a>b)c=1;else if(a= =b)c=0;else c=-1;printf(“%dn”,c);
}
3、#include main(){
int m;
scanf(“%d”,&m);
switch(m++%4)
{ case 0:
case 1: printf(“%d5”, m);break;
case 2: printf(“%5d”, m*m);
case 3: printf(“%5d”, m*m*m);} } 程序运行后输入2,程序的输出结果是什么?
4、#include
main(){ int i, s, t;
s=0;
for(i=1;i
{ if(i%2==0)t=-i;
else t=i;
s+=t;
} printf(“s=%dn”, s);
}
5、#include main(){ char ch;
int n=0;
ch=getchar();
while(ch!=‟n‟)
{ ++n;
ch=getchar();
}
printf(“%d”,n);
}
程序运行后输入abcdef,程序的输出结果是什么?
6、#include main(){ int i, j;
for(i=2, j=10;i
printf(“%d,%d “, i, j);
}
7、#include main(){ int n=12345, s=0;
while(n)
{ s++;
n/=10;
}
printf(“%d”,s);
}
8、#include main(){ char w[5]={ „3‟,‟4‟,‟2‟,‟6‟,‟1‟}, m,n;
int i;
m=w[0];n=w[0];
for(i=1;i
{ if(w[i]>m)m=w[i];
else if(w[i]
}
printf(“%c %cn”, m, n);
}
四、编程题(共20分,每题10分)
1、编程输入一个四位整数n,求其倒序数nr。例如,输入1256,输出6521。#include void main(){ int n;
printf(“请输入一个四位整数”);scanf(“%d”,&n);while(n!=0){printf(“%d”,n%10);
n=n/10;
}
}
2、输入一字符,判断该字符属于哪一类?
大写字母
„A‟~‟Z‟ 小写字母 „a‟~‟z‟ 数字类 „0‟~‟9‟ 其他字符类
3、定义一个包含5个整数的数组,找出其最大值和最小值,并将最大值和最小值交换位置,重新输出数组中的元素。(要求在程序运行过程中输入数组元素的值)#include void main(){ int a[5],i,max,min,imax,imin,itemp;printf(“请输入五个数作为数组元素”);for(i=0;i
if(max
{
max=a[i];
imax=i;
}
if(min>a[i])
{
min=a[i];
imin=i;
} } itemp=a[imax];a[imax]=a[imin];a[imin]=itemp;printf(“最大值%d,最小值%dn”,max,min);printf(“交换最大最小值重新输出数组元素为”);for(i=0;i