C语言复习题.docx
- 文档编号:9777310
- 上传时间:2023-02-06
- 格式:DOCX
- 页数:27
- 大小:23.43KB
C语言复习题.docx
《C语言复习题.docx》由会员分享,可在线阅读,更多相关《C语言复习题.docx(27页珍藏版)》请在冰豆网上搜索。
C语言复习题
文件管理序列号:
[K8UY-K9IO69-O6M243-OL889-F88688]
C语言复习题
有以下程序
#include
voidmain()
{inta=1,b=2,m=0,n=0,k;
k=(n=b>a)||(m=a
printf("%d,%d\n",k,m);
}
程序运行后的输出结果是__C___。
A、0,0B、0,1C、1,0D、1,1
若变量c为char类型,能正确判断出c为小写字母的表达式是__D_____。
A.'a'<=c<='z'B.(c>='a')||(c<='z')
C.('a'<=c)and('z'>=c)D.(c>='a')&&(c<='z')
以下符合C语言语法的实型常量是__C____。
A、1.2E0.5B、3.14159EC、5E-3D、E15
若变量已正确定义,有以下程序段
i=0;
do
printf("%d,",i);
while(i++);
printf("%d\n",i);
其输出结果是____B__。
A.0,0B.0,1
C.1,1D.程序进入无限循环
若有以下程序段,
intc1=1,c2=2,c3;
c3=1.0/c2*c1;
则执行后,c3中的值是____A__。
A、0B、0.5C、1D、2
以下选项中合法的字符常量是__B____。
A、"B"B、'\010'C、68D、D
有以下程序
main()
{chara,b,c,d;
scanf("%c,%c,%d,%d",&a,&b,&c,&d);
printf("%c,%c,%c,%c\n",a,b,c,d);
}
若运行时从键盘上输入:
6,5,65,66↙。
则输出结果是___A___。
A)6,5,A,BB)6,5,65,66
C)6,5,6,5D)6,5,6,6
以下4个选项,不能看作一条语句的是____B__。
A、{;}B、a=0,b=0,c=0;
C、if(a>0);D、if(b==0)m=1;n=2;
以下能正确定义二维数组的是____D__。
A、inta[][3];B、inta[][3]={2*3};
C、inta[][3]={};D、inta[2][3]={{1},{2},{3,4}};
有定义inta[10];且数组元素都已被赋值,以下都能将10个数组元素值依次写入文件,除了_____C______。
A.fwrite(a,sizeof(int),10,fp)
B.fwrite(a,sizeof(int),1,fp)
C.fwrite(a,10*sizeof(int),1,fp)
D.for(i=0;i<10;i++)fwrite(a,sizeof(int),1,fp);
有以下程序
#include
voidmain()
{inta=1,b;
for(b=1;b<=10;b++)
{if(a>=8)break;
if(a%2==1){a+=5;continue;}
a-=3;
}
printf("%d\n",b);
}
程序运行后的输出结果是__B____。
A、3B、4C、5D、6
下列选项中,合法的C语言关键字是___D___。
A、VARB、cherC、integerD、default
有如下程序
#include
voidmain()
{intx=1,a=0,b=0;
switch(x){
case0:
b++;
case1:
a++;
case2:
a++;b++;
}
printf("a=%d,b=%d\n",a,b);
}
该程序的输出结果是__A____。
A、a=2,b=1B、a=1,b=1C、a=1,b=0D、a=2,b=2
下列叙述错误的是___A___。
A、一个C语言程序只能实现一种算法
B、C程序可以由多个程序文件组成
C、C程序可以由一个或多个函数组成
D、一个C函数可以单独作为一个C程序文件存在
以下能正确定义且赋初值的语句是__B____。
A)intb1=b2=10;
B)charb=32;
C)floatf=f+1.1;
D)doublex=12.3E2.5;
有以下程序
main()
{inta,b,d=25;
a=d/10%9;
b=a&&(-1);
printf("%d,%d\n",a,b);
}
程序运行后的输出结果是__B____。
A、6,1B、2,1C、6,0D、2,0
以下叙述中错误的是__D____。
A)C程序中的#include和#define行均不是C语句
B)除逗号运算符外,赋值运算符的优先级最低
C)C程序中,j++;是赋值语句
D)C程序中,+、-、*、/、%号是算术运算符,可用于整型和实型数的运算
若变量已正确定义,则以下语句的输出结果是___B___。
s=32;s^=32;printf("%d",s);
A、-1B、0C、1D、32
以下程序
#definef(x)x*x
voidmain()
{inti;
i=f(4+4)/f(2+2);
printf(“%d\n”,i);
}
执行后输出结果是_____A_____。
A.28B.22C.16D.4
有以下程序
#include
#defineN5
#defineMN+1
#definef(x)(x*M)
main()
{inti1,i2;
i1=f
(2);
i2=f(1+1);
printf("%d%d\n",i1,i2);
}
程序的运行结果是__B____。
A、1212B、117C、1111D、127
若函数为float型,变量z为int型,该函数体内有语句return(z);则该函数返回的值是______B________。
A、int型B、float型C、编译出错D、不确定
以下能正确定义且赋初值的语句是__B____。
A)inta1=a2=10;
B)charc=97;
C)floatf=f+1.1;
D)doublex=12.3E-2.5;
下面这个程序段的输出是(B )
inta=1,b=2,c=3;
if(a>c)a=b;b=c;c=a;
printf(“a=%db=%dc=%d”,a,b,c);
A.a=1b=2c=1B.a=1b=3c=1
C.a=2b=3c=1D.a=2b=3c=2
有以下程序
#defineP3
voidF(intx){return(P*x*x);}
main()
{printf("%d\n",F(3+5));}
程序运行后的输出结果是___D___。
A、192B、29C、25D、编译出错
以下程序运行后的输出结果是__A____。
main()
{intk=5;
while(--k)printf("%d",k-=3);
printf("\n");
}
A)1B)2C)4D)死循环
以下能正确定义且赋初值的语句是【B】。
A)intn1=n2=10;
B)charc=99;
C)floatf=f+1.1;
D)doublex=12.3E2.5;
以下定义语句中正确的是__C____。
A、chara='A'b='B';B、floata=b=10.0;
C、inta=10,*b=&a;D、float*a,b=&a;
以下的for循环:
(D)
for(x=0,y=0;(y!
=123)&&(x<5);x++);
A)是无限循环B)循环次数不定C)执行4次D)执行5次
下列关于do…while语句和while语句的叙述中错误的是__C____。
A)do…while语句先执行循环中的语句,然后再判断表达式
B)while语句是先进行条件判断,满足条件才去执行循环体
C)while语句至少要执行一次循环语句
D)do…while循环至少要执行一次循环语句
如果n为整型,以下while循环执行___D___次。
#include
Voidmain()
{
intn;
n=2;
while(n==0)
printf("%d",n);
n--;
printf("\n");
printf("%d",n);
}
A)0次B)1次C)无限次D)2次
以下程序执行后输出结果是【A】。
main()
{chars[]="\n\t1234";
printf("%d,%d\n",strlen(s),sizeof(s));
}
A)赋初值的字符串有错B)6,7C)5,6D)6,6
不能把字符串:
Welcome!
赋给数组b的语句是___B___。
A)charb[10]={'W','e','l','c','0',,'m','e''!
',0};
B)charb[10]={'w','e','l','c','0',,'m','e''!
',0};
C)charb[10];strcpy(b,"Welcome!
");
D)charb[10]="Welcome!
";
以下数组定义中不正确的是__A____。
A)inta[1][3];
B)intb[][3]={1,1,2};
C)intc[3][3]={1};
D)intd[3][]={{1,2},{1,2,3},{1,2,3,4}};
下列函数定义中,会出现编译错误的是__C____。
A)max(intx,inty,int*z)B)intmax(intx,inty)
{*z=x>yx:
y;}{intz;
z=x>yx:
y;
returnz;}
C)max(intx,y)D)intmax(intx,inty)
{intz;{return(x>yx:
y);}
z=x>yx:
y;return(z);}
不能把字符串:
Hello!
赋给数组b的语句是【B】。
A)charb[10]={'H','e','l','l','o','!
',0};
B)charb[10]={'h','e','l','l','o','!
',0};
C)charb[10];strcpy(b,"Hello!
");
D)charb[10]="Hello!
";
如下程序的执行结果是__B____。
intrunc(inta,intb)
{
return(a+b);
}
main()
{intx=2,y=3,z=4,r;
r=runc(runc(x,y),z);
printf(“%d\n”,r);
}
A、3B、9C、5D、4
设ch是char型变量,其值为A,且有下面的表达式
ch=(ch>='A'&&ch<='Z')(ch+32):
ch
上面表达式的值是__B____。
A、AB、aC、ZD、z
以下选项中合法的字符常量是__B____。
A、"B"B、'\010'C、68D、D
若有以下程序
#include
voidf(intn);
main()
{voidf(intn);
f(5);
}
voidf(intn)
{printf("%d\n",n);}
则以下叙述中不正确的是___C___。
A、若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f
B、若在主函数前对函数f进行说明,则在主函数和其后的其它函数中都可以正确调用函数f
C、对于以上函数程序,编译时系统会提示出错信息;提示对f函数重复说明
D、函数f无返回值,所以可用void将其类型定义为无值型
请选出可用做C语言用户标识符的一组标识符__B____。
①void②a3_b3③For④2a
define_12A_abcDO
WORDNOcasesizeof
A)①B)②C)③D)④
若变量已正确定义,有以下程序段
i=0;
do
printf("%d,",i);
while(i++);
printf("%d\n",i);
其输出结果是__B____。
A.0,0B.0,1
C.1,1D.程序进入无限循环
以下叙述中错误的是___D___。
A)C程序中的#include和#define行均不是C语句
B)除逗号运算符外,赋值运算符的优先级最低
C)C程序中,j++;是赋值语句
D)C程序中,+、-、*、/、%号是算术运算符,可用于整型和实型数的运算
有定义语句:
intx,y;。
若要通过scanf("%d,%d",&x,&y);语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,错误的是__A____。
A、1112↙B、11,12↙C、11,12↙D、11,↙12↙
x=2;
do
{x=x*x-3;
}while(!
x);
以下说法正确的是(A)
A)循环体将执行一次B)循环体将执行两次
C)循环体将执行无限次D)系统将提示有语法错误
设inta=12,则执行完语句a+=a-=a*a后,a的值是__D____。
A、552
B、264
C、144
D、-264
下面程序段的运行结果是___D____。
chara[8]="student";
charb[4]="BCD";
strcpy(a,b);
printf("%s",a);
A)studentB)ABCdentC)BCDD)studentABC
以下程序运行后的输出结果是(A)。
main()
{inta=2,b=3,c=4,d=5;
if(a>b)
if(b>c)
printf("%d",d+++1);
else
printf("%d",++d+1);
printf("%d\n",d);
}
A)5B)6C)7D)8
下列关于do…while语句和while语句的叙述中错误的是__C____。
A)do…while语句先执行循环中的语句,然后再判断表达式
B)while语句是先进行条件判断,满足条件才去执行循环体
C)while语句至少要执行一次循环语句
D)do…while循环至少要执行一次循环语句
不能把字符串:
Students!
赋给数组b的语句是__B____。
A)charb[10]={'S','t','u','d','e','n','t','s','!
',0};
B)charb[10]={'s','t','u','d','e','n','t','s','!
',0};
C)charb[10];strcpy(b,"Students!
");
D)charb[10]="Students!
";
在函数调用过程中,如果函数funA调用了函数funA,则__C____。
A)称为函数的直接递归调用B)称为函数的间接递归调用
C)称为函数的循环调用D)C语言中不允许这样的递归调用
以下程序的输出结果是__C____。
fun(intx,inty,intz)
{z=x*x+y*y;}
main()
{inta=9;
fun(5,2,a);
printf("%d",a);
}
A)0B)29C)9D)3
有以下程序段
intn,t=1,s=0;
scanf("%d",&n);
do{s=s+t;t=t-2;}while(t!
=n);
为使此程序段不陷入死循环,从键盘输入的数据应该是__D____。
A、任意正奇数B、任意负偶数C、任意正偶数D、任意负奇数
若函数为int型,变量z为float型,该函数体内有语句return(z);则该函数返回的值是【A】。
A、int型B、float型C、编译出错D、不确定
如果n为整型,以下while循环执行___C___次。
#include
main()
{
intn;
n=2;
while(n==2)
printf("%d",n);
n--;
printf("\n");
printf("%d",n);
}
A)0次B)1次C)无限次D)2次
执行以下程序段时A
x=-1;
do
{x=x*x;
}while(x);
A)循环体将执行一次B)循环体将执行两次
C)循环体将执行无限次D)系统将提示有语法错误
以下程序的输出结果是C
fun(intx,inty,intz)
{z=x*x+y*y;}
main()
{inta=12;
fun(5,4,a);
printf("%d",a);
}
A)0B)41C)12D)3
设ch是char型变量,其值为B,且有下面的表达式
ch=(ch>='B'&&ch<='Z')(ch+32):
ch
上面表达式的值是___B___。
A、BB、bC、ZD、z
以下选项中合法的字符常量是__B____。
A、"B"B、'\010'C、68D、D
22、下面程序段的运行结果是___D____。
chara[8]="student";
charb[4]="ABC";
strcpy(a,b);
printf("%s",a);
A)studentB)ABCdentC)ABCD)studentABC
以下程序的输出结果是___100___。
voidmain()
{int**k,*a,b=100;
a=&b;k=&a;
printf(“%d\n”,**k);
}
已定义charch='$';inti=1,j;,执行j=!
ch&&i++以后,i的值为__1____。
执行以下程序后的输出结果是___24___。
main()
{inta=20;
a+=4;
printf("%d\n",a);
}
若要在变量charb[20]中输入字符串:
“abcxyz”正确的输入语句是___grts(b)___
以下程序的功能是计算:
s=1+12+123+1234+12345。
请填空。
main()
{intt=0,s=0,i;
for(i=1;i<=5;i++){
t=i+___10*t___;
s=s+t;
}
printf("s=%d\n",s);
}
若有如下定义:
inta[10];
int*p1=a,*p2=&a[5];
p1=a;
则p2-p1的值是:
【】。
有以下程序
main()
{charch[]="uvwxyz",*pc;
pc=ch;printf("%c\n",*(pc+5));
}
程序运行后的输出结果是__z____。
#include
main()
{inti,n[4]={1};
for(i=1;i<=3;i++)
{n[i]=n[i-1]*2+1;printf("%d",n[i]);}
}
所得结果为(3715):
12、下列函数定义中,会出现编译错误的是___B___。
A)a(intx,inty,int*z)B)inta(intx,y)
{*z=x>yx:
y;}{intz;
z=x>yx:
y;
returnz;}
C)a(intx,inty)D)inta(intx,inty)
{intz;{return(x>yx:
y);}
z=x>yx:
y;return(z);}
设有定义语句:
inta[][3]={{0},{1},{2}};则数组元素a[2][1]的值是__0___。
:
0
以下程序的功能是调用函数fun计算:
m=1-2+3-4+…+9-10,并输出结果。
请填空。
intfun(intn)
{intm=0,f=1,i;
for(i=1;i<=n;i++)
{m+=i*f;
f=-f;
}
returnm;
}
main()
{printf("m=%d\n",_____fun(10)_______);}
若有定义inta[10];则数组a中第四个元素是:
______a[3]________。
:
执行下列程序段后,x和i的值分别是___10___和___6___。
intx,i;
for(i=1,x=1;i<=50;i++)
{if(x>=10)break;
if(x%2==1){x+=5;continue;}
x-=3;
}
main()
{intx=0210;printf("%X\n",x);
}
所得结果为:
(88)
下面程序的运行结果是:
__3,5____。
voidswap(int*a,int*b)
{int*t;
t=a;a=b;b=t;
}
main()
{intx=3,y=5,*p=&x,*q=&y;
swap(p,q);
printf("%d%d\n",*p,*q);
}
设有定义语句:
inta[][3]={{0},{1},{2}};,则数组元素a[2][1]的值是_0__。
下列程序的输出结果是__5,3____。
main()
{inta=3,b=5;
a=a+b;b=a-b;a=a-b;
printf("%d,%d\n",a,b);
}
以下程序的功能是:
输出a、b、c三个变量中的最小值,请填空。
#include
main()
{inta,b,c,t1,t2;
scanf("%d%d%d",&a,&b,&c);
t1=a b___; t2=c t1; printf("%d\n",t2); } 以下程序的功能是: 输出a、b、c三个变量中的最大值,请填空。 #include main() {inta,b,c,t1,t2; scanf("%d%d%d",&a,&b,&c); t1=a a___; t2=c c; printf("%d\n",t2); } 在函数调用过程中,如果函数funA调用了函数funB,函数funB又调用了函数funA,则: fun(A)与fun(B)为函数的间接递归调用 函数fun的功能是计算xn。 doublefun(doublex,intn) {
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 复习题