C语言复习题 2.docx

上传人:b****4 文档编号:26844463 上传时间:2023-06-23 格式:DOCX 页数:27 大小:23.44KB
下载 相关 举报
C语言复习题 2.docx_第1页
第1页 / 共27页
C语言复习题 2.docx_第2页
第2页 / 共27页
C语言复习题 2.docx_第3页
第3页 / 共27页
C语言复习题 2.docx_第4页
第4页 / 共27页
C语言复习题 2.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

C语言复习题 2.docx

《C语言复习题 2.docx》由会员分享,可在线阅读,更多相关《C语言复习题 2.docx(27页珍藏版)》请在冰豆网上搜索。

C语言复习题 2.docx

C语言复习题2

有以下程序

#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)

{

inti;

doubley=1;

for(i=1;i<=n;i++)y

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 机械仪表

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1