C语言复习题.docx

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

C语言复习题.docx

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

C语言复习题.docx

C语言复习题

c语言程序设计复习题

一、选择题

(1)算法具有五个特性,以下选项中不属于算法特性的是(B)

(A)有穷性(B)简洁性(C)可行性(D)确定性

(2)一个C语言程序是由(A)。

(A)一个主程序和若干子程序组成(B)函数组成

(C)若干过程组成(D)若干子程序组成

(3)以下叙述中正确的是(C)

(A)用C语言实现的算法必须要有输入和输出操作

(B)用C语言实现的算法可以没有输出但必须要有输入

(C)用C程序实现的算法可以没有输入但必须要有输出

(D)用C程序实现的算法可以既没有输入也没有输出

(4)如果有定义:

inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为9的表达式是B。

(A)*p+8(B)*(p+8)(C)*p+=9(D)p+8

(5)以下选项中,不能作为合法常量的是(B)

(A)1.234e04(B)1.234e0.4(C)1.234e+4(D)1.234e0

(6)下列叙述中正确的是(C)

(A)break语句只能用于switch语句

(B)在switch语句中必须使用default

(C)在switch语句中break语句总是case配对使用

(D)在switch语句中,不一定使用break语句

(7)有以下程序

main()

{intm,n,p;

scanf("m=%dn=%dp=%d",&m,&n,&p);

printf("%d%d%d\n",m,n,p);

}

若想从键盘上输入数据,使变量M中的值为123,N中的值为456,P中的值为789,则正确的输入是(A)

(A)m=123n=456p=789(B)m=123n=456p=789

(C)m=123,n=456,p=789(D)123456789

(8)有以下程序

main()

{inta,b,d=25;

a=d/10%9;b=a&&(-1);

printf("%d,%d\n",a,b);

}

程序运行后的输出结果是(B)

(A)6,1(B)2,1(C)6,0(D)2,0

(9)在嵌套使用if语句时,C语言规定else总是(A)

(A)和之前与其具有相同缩进位置的if配对

(B)和之前与其最近的if配对

(C)和之前与其最近的且不带else的if配对

(D)和之前的第一个if配对

(10)有以下程序main(){inta=0,b=0;

a=10;b=20;printf("a+b=%d\n",a+b);

}程序运行后的输出结果是(B)(A)a+b=10(B)a+b=30(C)30(D)出错

11.在C程序中,用__B_表示逻辑值“真”。

A、1B、非0的数C、非1的数D、大于0的数

12.以下不能做为C语言标识符的是B

A、_1234_B、2_int_C、int_2_D、_1_2

13.若有定义语句:

inta=10;doubleb=3.14;,则表达式'A'+a+b值的类型是C。

A、char   B、int   C、double   D、float

14.表达式3.6-5/2+1.2+5%2的值是D。

A、4.3B、4.8C、3.3D、3.8

15.若有定义语句:

intx=12,3=8,z;,在其后执行语句z=0.9+x/y;,则Z的值为。

A、1.9B、1C、2D、2.4

16.C语言对嵌套if语句的规定是else总是与A配对。

A、之前最近的尚未配对的ifB、第一个if

C、缩进位置相同的ifD、最前面的if

17、在C语言程序中,__A__是在所有函数外部声明的。

A、全局变量B、全程变量C、外部变量D、内部变量

18、若有定义:

inta,b;,通过语句scanf("%d;%d",&a,&b);,能把整数3赋给变量a,5赋给变量b的输入数据是__C___。

A、35   B、3,5   C、3;5  D、35

19、若有定义语句:

intk1=10,k2=20;,执行表达式(k1=k1>k2)&&(k2=k2>k1)后,k1和k2的值分别为__B__。

A、0和1   B、0和20   C、10和1   D、10和20

20.下面C代码的输出结果是__B___。

   intanswer,result;

answer=100;result=answer-10;

printf(“Theresultis%d”,result+5);

  A、Theresultis90B、Theresultis95

C、Theresultis10D、Theresultis100

21.用来将两个字符串合并为一个字符串的函数是__A___。

A、strcat()B、strcpy()C、strlen()D、length()

22.若用数组名作为函数调用的实参,传递给形参的是A。

A、数组的首地址B、数组中第一个元素的值

C、数组中的全部元素的值D、数组元素的个数

23.若有定义int*p,m=5,n;以下程序段正确的是D。

A、p=&n;scanf(“%d”,&p);B、p=&n;scanf(“%d”,*p);

C、scanf(“%d”,&n);*p=n;D、p=&n;*p=m;

24.在C语言中,若有如下定义:

structstudent

{charname[18];intage;charsex;};structstudenta;

则结构变量a占用内存字节数是C。

A、3B、20C、21D、不确定

25.下列程序段的输出结果是A

A)2143B)1212C)1234D)2112

voidfun(int*x,int*y)

{printf(“%d%d”,*x,*y);*x=3;*y=4;}

main()

{intx=1,y=2;

fun(&y,&x);

printf(“%d%d”,x,y);

}

26.以下程序运行结果是(A)

main()

{inta[]={3,4,5,6,7},y=1,x;

for(x=0;x<3;x++)y=y+a[x+1];

printf(“%d\n”,y);

}

A)16B)17

C)19D)20

27.在循环结构的循环体中执行break语句,其作用是(C)

A)结束本次循环,进行下次循环

B)继续执行break语句之后的循环体中各语句

C)跳出该循环体,提前结束循环

D)终止程序运行

28.C语言的简单数据类型包括(D)

A)整型、实型、逻辑型B)整型、实型、字符型、逻辑型

C)整型、字符型、逻辑型D)整型、实型、字符型

29.下列程序段的运行结果是(B)

inti=1,a[]={1,5,10,9,13,7};

while(a[i]<=10){a[i]=a[i]+2;i++;}

for(i=0;i<6;i++)printf(“%d”,a[i]);

A)271211139B)171211137

C)171211139D)17129137

30.对for(表达式1;;表达式3)可理解为(B)

A)for(表达式1;0;表达式3)

B)for(表达式1;1;表达式3)

C)for(表达式1;表达式1;表达式3)

D)for(表达式1;表达式3;表达式3)

31.执行以下语句后b的值为(B)

inta=5,b=6,w=1,x=2,y=3,z=4;

b=(a=w>x)&&(b=y>z);

A)6B)0C)1D)4

32.阅读以下程序,当输入数据的形式为:

25,13,10,正确的输出结果为(“CR”表示回车)(A)

main()

{intx,y,z;

scanf(“%d%d%d”,&x,&y,&z);

printf(“x+y+z=%d\n”,x+y+z);

}

A、x+y+z=48B、x+y+z=35C、x+z=35D、不确定值

33.C语言中while与do---while语句的主要区别是(A)

A)do---while的循环体至少无条件执行一次

B)do---while允许从外部转到循环体内

C)do---while的循环体不能是复合语句

D)do---while的循环体不能提前结束

34.以下正确的描述是(B)

在C语言程序中:

A)函数的定义可以嵌套,但函数的调用不可以嵌套

B)函数的定义不可以嵌套,但函数的调用可以嵌套

C)函数的定义和函数的调用均不可以嵌套

D)函数的定义和函数的调用均可以嵌套

35.以下不正确的描述是(D)

A)在函数外部定义的变量是全局变量

B)在函数内部定义的变量是局部变量

C)函数的形参是局部变量

D)局部变量不能与全局变量同名

36.在C程序中,用(B)表示逻辑值“真”。

A、1B、非0的数C、非1的数D、大于0的数

37.C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符(C)。

(A)必须为字母

(B)必须为下划线

(C)必须为字母或下划线

(D)可以是字母、数字和下划线中任一种字符

38.一个C语言程序的执行是从(A)。

(A)本程序的main函数开始,到main函数结束

(B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束

(C)本程序的main函数开始,到本程序文件的最后一个函数结束

(D)本程序文件的第一个函数开始,到本程序的main函数结束

39.表达式3.6-5/2+1.2+5%2的值是(D)。

A、4.3B、4.8C、3.3D、3.8

40.合法的数组定义是(D)。

(A)inta[]=“string”;(B)inta[5]={0,1,2,3,4,5};

(C)chara=“string”;(D)chara[]={‘0’,‘1’,‘2’,‘3’,‘4’,‘5’};

41.C语言对嵌套if语句的规定是else总是与(A)配对。

A、之前最近的尚未配对的ifB、第一个if

C、缩进位置相同的ifD、最前面的if

42、以下程序段的输出结果是(A)。

inta=1234;

printf("%2d\n",a);

(A)12(B)34(C)1234(D)提示出错、无结果

43.对于while语句,错误的说法是(B)。

A、用条件控制循环的执行次数B、循环体至少要执行一次

C、循环体有可能一次也不执行D、循环体中可以包含若干条语句

44、下面的程度段的循环次数是(B)。

for(i=2;i==0;)printf(“%d”,i--);

A、无限次B、0次C、1次D、2次

45.已知:

inta[2][3]={1,2,3,4,5,6};,则a[1][2]的值为(C)。

(A)4(B)2(C)6(D)下标超出范围

46.表达式strlen(“hello”)的值是(B)。

A、4B、5C、6D、7

47.若用数组名作为函数调用的实参,传递给形参的是(A)。

A、数组的首地址B、数组中第一个元素的值

C、数组中的全部元素的值D、数组元素的个数

48.已知函数abc的定义为:

Voidabc()

{…}

则函数定义中void的含义是(A)。

(A)执行函数abc后,函数没有返回值(B)执行函数abc后,函数不再返回

(C)执行函数abc后,可以返回任意类型(D)以上三个答案全是错误的

49.对以下语句的正确理解是(B)。

inta[10]={6,7,8,9,10};

(A)将5个初值依次赋给a[1]至a[5]

(B)将5个初值依次赋给a[0]至a[4]

(C)将5个初值依次赋给a[6]至a[10]

(D)因为数组长度与初值的个数不相同,所以此语句不正确

50.阅读以下程序,当输入数据的形式为25,13,10时,正确的输出结果为()。

main(D)

{

intx,y,z;

scanf("%d%d%d",&x,&y,&z);

printf("x+y+z=%d\n",x+y+z);

}

(A)x+y+z=48

(B)x+y+z=35

(C)x+z=35

(D)不确定值

二、阅读程序,写出程序的正确运行结果。

1.以下程序运行后的输出结果是____

#defineS4

main()

{inti=6,j=8;

printf("%d\n",S*i*j);

}

答案:

_192___

2.以下程序运行后的输出结果是____

main()

{inta,b,c;

a=10;b=20;c=(a%b<1)||(a/b>1);

printf("%d%d%d\n",a,b,c);

}

答案:

10200

3.已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入:

B<回车>33<回车>.则输出结果是_____

#include

main()

{chara,b;

a=getchar();

scanf("%d",&b);

a=a-'A'+'0';b=b*2;

printf("%c%c\n",a,b);

}

答案:

1B

4、floatf=3.1415927;

  printf(“%f,%5.4f,%3.3f”,f,f,f);

  则程序的输出结果是:

         3.141593,3.1416,3.142.

5、intx=6,y=7;

  printf(“%d,”,x++);

  printf(“%d\n”,++y);

  程序的输出结果是 :

   6,8

6.从键盘上输入若干个学生成绩,统计并输出最高成绩和最低成绩,输入负数时结束。

#include

main()

{floats,gmax,gmin;

scanf("%f,",&s);

gmax=s;gmin=s;

while(s>0)

{if(s>gmax)gmax=s;

if(s

scanf("%f,",&s);}

printf("gmax=%f\ngmin=%f\n",gmax,gmin);

}

7.对输入的一个整数进行判断,若是偶数,输出ever,否则输出odd,在子函数fun2的功能是判定整数是否为偶数,若是偶数,返回1,否则返回0。

#include

intfun2(intx)

{if(x%2==0)return1;

return0;}

main()

{intn;

scanf("%d",&n);

if(fun2(n)或fun2(n)==1)printf("even\n");

elseprintf("odd\n");;}

8.#include

main()

{inta,b,product;

a=30;b=20;

product=a*b;

printf(“a*b=%d\n”,product);

}

运行结果:

a*b=600

9.#include

main()

{inta,b;

floatx,y;

a=12;b=-24;

a=a+b;

x=3.14;

y=x*5*5;

printf(“\na=%d”,a);

printf(“\ny=%f”,y);

}

运行结果:

a=-12

y=78.5

10.#include

main()

{inta,b,c;

a=10;b=50;c=30;

if(a>b)a=b;

b=c;

c=a;

printf(“a=%d,b=%d,c=%d\n”,a,b,c);

}

运行结果:

a=10,b=30,c=10

11.#include

main()

{inta=1,b=10;

do

{b-=a;

a++;

}while(b--<10);

printf(“a=%d,b=%d\n”,a,b);

}

运行结果:

a=256,b=32651

12.#include

main()

{intk;

inta[3][3]={1,2,3,4,5,6,7,8,9};

for(k=0;k<3;k++)

printf(“%d,\n”,a[k][2-k]);

}

运行结果:

3,

5,

7,

13.#include

fun(intx,inty)

main()

{intx=2,y=3;

printf(“%d,%d\n”,x,y);

fun(x,y);

printf(“%d,%d\n”,x,y);

}

fun(intx,inty)

{intt;

t=x;

x=y;

y=t;

printf(“%d,%d\n”,x,y);

}

运行结果:

2,3

3,2

2,3

14.要求以下程序实现输出x,y,z三个数中的最大者,请在_______上填写正确内容。

#include

main()

{intx=23,y=34,z=17;

intu,v;

if(___x>y________)u=x;

elseu=y;

if(______u>z_____)v=u;

elsev=z;

printf("v=%d",v);

}

15.以下程序的功能是以每行4个数据的形式输出a数组元素,请在_______上填写正

确内容。

#include

#defineN20

main()

{inta[N],i;

for(i=0;i<=N-1;i++)

scanf("%d",__&a[i]__________);

for(i=0;i<=N-1;i++)

{if(i%4==0)printf("\n");

printf("%3d",___a[i]_______);

}

printf("\n");

}

三、填空题

1、一个C程序总是从main()或主函数开始运行的。

2、C语言中普通整型变量的类型说明符为   int ,在内存中占   2字节,有符号普通整型的数据范围是  -32768~+32767  。

3、表达式7+8>2&&25%5的结果是_________0______________。

4、执行下列语句inta=8; a+=a-=a*a;后,a的值是  -112     。

5、有如下语句:

char A[]={”Iamastudent”};该字符串的长度是 14  ,A[3]=  ‘m’ 。

6、符号”a”和’a’的区别是    ”a”是字符串常量,而’a’是字符常量                。

7、所谓“指针”就是    存放地址值的变量或常量,或者答地址              。

  “&”运算符的作用是     取运算对象的地址     。

  “*”运算符的作用是取指针变量所指的内容。

8、有如下输入语句:

scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式应是    a=1,b=3,c=2     。

9、C语言的三种基本程序结构是顺序结构__、选择结构_、循环结构__。

10、C语言的三个循环语句分别是for语句_、_while语句__、do-while语句_。

11.能表述“2020&&x<30||x<-100。

12、若有定义:

inta[3][4]={{7,10},{4},{2,3,5,7}};则初始化后a[0][1]的值为,a[1][2]的值为,a[2][1]的值为。

13.若在程序中用到“putchar”,应在程序开头写上包含命令,若在程序中用到“strlen()”函数时,应在程序开头写上包含命令。

14.有以下程序(注:

字符a的ASCIl码值为97)

#include

main()

{char*s={"abe"};

do{printf("%d",(*s)%10);++s;}while(*s);

}

程序运行后的输出结果是_781____。

15、下列程序段的输出结果是_5__。

int*p,*q,k=5,j=6;q=&k;p=q;q=&j;

printf("%d",*p);

16.C语言程序的语句结束符是_分号_________。

17.编写一个C语言程序,上机运行需要经过_编辑、_编译_、_连接、_运行___、

_四个步骤。

18、若有定义:

inta[3][4]={{1,2}{0}{4,6,8,10}};则初始化后a[1][2]的值为

0,a[2][1]得到的值为6

19.以下程序的运行结果是60—69<60error!

main()

{

chargrade=’C’;

switch(grade)

{case‘A’:

printf(“85—100\n”);

case‘B’:

printf(“70—84\n”);

case‘C’:

printf(“60—69\n”);

case‘D’:

printf(“<60\n”);

default:

printf(“error!

\n”);

}

}

20.执行以下程序后,输出的“#”的个数为20。

for(i=1;i<5;i++)

for(j=1;j<=5;j++)

printf("#");

四、仔细阅读如下程序,按题意填

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

当前位置:首页 > 表格模板 > 合同协议

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

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