C语言程序设计.docx

上传人:b****5 文档编号:6850730 上传时间:2023-01-11 格式:DOCX 页数:28 大小:29.34KB
下载 相关 举报
C语言程序设计.docx_第1页
第1页 / 共28页
C语言程序设计.docx_第2页
第2页 / 共28页
C语言程序设计.docx_第3页
第3页 / 共28页
C语言程序设计.docx_第4页
第4页 / 共28页
C语言程序设计.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

C语言程序设计.docx

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

C语言程序设计.docx

C语言程序设计

《C语言程序设计》练习题

一、单项选择题

单项选择题要求从给出的四个备选答案中,选出一个最符合题意的答案。

本类习题主要检查对C语言基本概念的掌握情况。

在完成习题的过程中,不但要选出正确的答案,而且要清楚不正确的选项错在何处,以加深对概念的理解。

对于掌握不准的问题,应该通过上机实验来检验。

1.下列四组字符串中都可以用作C语言程序标识符的一组是_A___。

A)printB)i\amC)PxqD)str_l

_3done_halfMy->bookCpp

oodbstart$itline#pow

aBc3paiHis.agewhile

2.C语言程序从main()函数开始执行,所以这个函数要写在_D___。

A)程序文件的开始B)程序文件的最后

C)它所调用的函数的前面D)程序文件的任何位置

3.下列关于C语言的叙述错误的是_A___。

A)大写字母和小写字母的意义相同

B)不同类型的变量可以在一个表达式中

C)在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型

D)同一个运算符号在不同的场合可以有不同的含义

4.在C语言中,错误的int类型的常数是__A__。

A)32768B)0C)037D)0xAF

5.已知longi=65539;执行语句printf("%d",i);屏幕显示__C。

216

A)65539B)-3C)3D)程序不能执行

6.在C语言中,整数-8在内存中的存储形式是__A__。

A)1111111111111000B)1000000000001000C)0000000000001000D)1111111111110111

7.C语言中字符型(char)数据在内存中的存储形式是_D___。

A)原码B)补码C)反码D)ASCII码

8.将字符g赋给字符变量c,正确的表达式是_C__。

A)c=\147B)c="\147"C)c='\147'D)c='0147'

9.已知:

chara;intb;floatc;doubled;执行语句"c=a+b+c+d;"后,变量c的数据类型是__D__。

范围大的选

A)intB)charC)floatD)double

10.温度华氏和摄氏的关系是:

C=5/9(F-32)。

已知:

floatC,F;由华氏求摄氏正确的赋值表达式是_B__

A)C=5/9(F-32)B)C=5*(F-32)/9C)C=5/9*(F-32)D)三个表达式都正确

11.逗号表达式"(a=3*5,a*4),a+15"的值是_C__。

A)15B)60C)30D)不确定

12.如果inta=1,b=2,c=3,d=4;则条件表达式"a

a:

c

c:

d"的值是A___。

A)1B)2C)3D)4

13.已知inti=10;表达式"20-0<=i<=9"的值是_B___。

A)0B)1C)19D)20

14.使用语句scanf("x=%f,y=%f",&x,&y);输入变量x、y的值(□代表空格),正确的输入是_C___。

A)1.25,2.4B)1.25□2.4C)x=1.25,y=2.4D)x=1.25□y=2.4

15.已知intx=(1,2,3,4);变量x的值是__D__。

最后的值。

A)1B)2C)3D)4

16.已知inti=1,j=0;执行下面语句后j的值是__D__。

while(i)

switch(i)

{case1:

i+=1;j++;break;

case2:

i+=2;j++;break;

case3:

i+=3;j++;break;

default:

i--;j++;break;

}

A)1B)2C)3D)死循环

17.求取满足式12+22+32+……+n2≤1000的n,正确的语句是____。

A)for(i=1,s=0;(s=s+i*i)<=1000;n=i++);B)for(i=1,s=0;(s=s+i*i)<=1000;n=++i);

C)for(i=1,s=0;(s=s+i*++i)<=1000;n=i);D)for(i=1,s=0;(s=s+i*i++)<=1000;n=i);

18.下面的for语句__C__。

for(x=0,y=10;(y>0)&&(x<4);x++,y--);

A)是无限循环B)循环次数不定C)循环执行4次D)循环执行3次

19.已知chara[][20]={"Beijing","shanghai","tianjin","chongqing"};语句printf("%c",a[30]);的输出是____。

A)<空格>B)nC)不定D)数组定义有误

20.对二维数组的正确说明是_C___。

A)inta[][]={1,2,3,4,5,6};B)inta[2][]={1,2,3,4,5,6};

C)inta[][3]={1,2,3,4,5,6};D)inta[2,3]={1,2,3,4,5,6};

21.对字符数组str赋初值,str不能作为字符串使用的一个是_A___。

A)charstr[]="shanghai";

B)charstr[]={"shanghai"};

C)charstr[9]={'s','h','a','n','g','h','a','i'};

D)charstr[8]={'s','h','a','n','g','h','a','i'};

22.如果一个变量在整个程序运行期间都存在,但是仅在说明它的函数内是可见的,这个变量的存储类型应该被说明为_D___。

A)静态变量B)动态变量C)外部变量D)内部变量

23.在一个C源程序文件中,若要定义一个只允许在该源文件中所有函数使用的变量,则该变量需要使用的存储类别是C____。

A)externB)registerC)autoD)static

24.定义一个函数实现交换x和y的值,并将结果正确返回。

能够实现此功能的是____。

A)swapa(intx,inty)B)swapb(int*x,int*y)

{inttemp;{inttemp;

temp=x;x=y;y=temp;temp=x;x=y;y=temp;

}}

C)swapc(int*x,int*y)D)swapd(int*x,int*y)

{inttemp;{int*temp;

temp=*x;*x=*y;*y=temp;temp=x;x=y;y=temp;

}}

25.在下列结论中,只有一个是错误的,它是_D___。

A)C语言允许函数的递归调用

B)C语言中的continue语句,可以通过改变程序的结构而省略

C)有些递归程序是不能用非递归算法实现的

D)C语言中不允许在函数中再定义函数

26.说明语句"int(*p)();"的含义是_C___。

A)p是一个指向一维数组的指针变量B)p是指针变量,指向一个整型数据

C)p是一个指向函数的指针,该函数的返回值是一个整型D)以上都不对

27.设有说明int(*p)[4];其中的标识符p是__D__。

A)4个指向整型变量的指针变量

B)指向4个整型变量的函数指针

C)一个指向具有4个整型元素的一维数组的指针

D)具有4个指向整型变量的指针元素的一维指针数组

28.已知:

chars[10],*p=s,则在下列语句中,错误的语句是____。

A)p=s+5;B)s=p+s;C)s[2]=p[4];D)*p=s[0];

29.已知:

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

int(*ptr)[3]=a,*p=a[0];

则以下能够正确表示数组元素a[1][2]的表达式是____。

A)*(*(a+1)+2)B)*(*(p+5))C)(*ptr+1)+2D)*((ptr+1)[2])

30.已知:

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

A)p+=2,*(p++)B)p+=2,*++pC)p+=2,*p++D)p+=2,++*p

32.函数的功能是交换变量x和y中的值,且通过正确调用返回交换的结果。

能正确执行此功能的函数是___B_。

A)funa(int*x,int*y)B)funb(intx,inty)

{int*p;{intt;

p=x;*x=*y;*y=*p;t=x;x=y;y=t;

}}

C)func(int*x,int*y)D)func(int*x,int*y)

{*x=*y;*y=*x;{*x=*x+*y;*y=*x-*y;*x=*x-*y;

}}

33.有定义如下:

structsk

{inta;

floatb;

}data,*p;

如果p=&data;则对于结构变量data的成员a的正确引用是B____。

A)(*).data.aB)(*p).aC)p->data.aD)p.data.a

34.已知:

structst

{intn;

structst*next;

};

staticstructsta[3]={1,&a[1],3,&a[2],5,&a[0]},*p;

如果下述语句的显示是2,则对p的赋值是____。

printf("%d",++(p->next->n));

A)p=&a[0];B)p=&a[1];C)p=&a[2];D)p=&a[3];

35.fscanf函数的正确调用形式是__C__。

A)fscanf(文件指针,格式字符串,输出列表);B)fscanf(格式字符串,输出列表,文件指针);

C)fscanf(格式字符串,文件指针,输出列表);D)fscanf(文件指针,格式字符串,输入列表);

36.使用fgetc函数,则打开文件的方式必须是____。

A)只写B)追加C)读或读/写D)参考答案B和C都正确

37.已知宏定义

#defineN3

#defineY(n)((N+1)*n)

执行语句z=2*(N+Y(5+1));后,变量z的值是____。

A)42B)48C)52D)出错

38.已知宏定义#defineSQ(x)x*x,执行语句printf("%d",10/SQ(3));后的输出结果是____。

A)1B)3C)9D)10

39.C语言程序的执行,总是起始于(C)。

A)程序中的第一条可执行语句B)程序中的第一个函数C)main函数D)包含文件中的第一个函数

40.下列说法中正确的是(C)。

A)C程序书写时,不区分大小写字母B)C程序书写时,一行只能写一个语句

C)C程序书写时,一个语句可分成几行书写D)C程序书写时每行必须有行号

41.下面对C语言特点,不正确描述的是(D)。

A)C语言兼有高级语言和低级语言的双重特点,执行效率高

B)C语言既可以用来编写应用程序,又可以用来编写系统软件

C)C语言的可移植性较差

D)C语言是一种结构式模块化程序设计语言

42..C语言源程序的最小单位是(D)。

A)程序行B)语句C)函数D)字符

43.以下四项中属于C语言关键字的是(C)。

A)CHARB)defineC)unsignedD)retern

44.十进制数2403转换成十六进制数为(B)。

A)963B)369C)953D)359

45.在C语言系统中,假设int类型数据占2个字节,则double、long、unsignedint、char类型数据所占字节数分别多少(D)

A)8,2,4,1B)2,8,4,1C)4,2,8,1D)8,4,2,1

46.下面程序段执行结果是(B)。

inti=5,k;

k=(++i)+(++i)+(i++);

printf("%d,%d",k,i);

A)24,8B)21,8C)21,7D)24,7

47.下面程序段执行结果是(B)。

inti=5;

printf("%d,%d,%d",i,(++i)+(++i)+(i++),i);

A)8,20,5B)8,21,5C)5,20,8D)5,21,8

48.下面程序段的输出结果是(D)。

inti=32769;

printf("%d\\n",i);

A)32769B)32767C)-32767D)输出不是确定的数

49.下面叙述不正确的是()。

A)C语句末尾必须有分号B)C语言中无论是整数还是实数都能准确的表示

C)运算符“%”只能用于整数运算D)乘除运算符优先级高于加减运算符

50.以下叙述正确的是()。

A)C语句前面必须有行号B)C程序中每行只能写一条语句

C)C语言本身没有输入输出语句D)注释必须跟在一行语句的后面

51.复合语句应用()括起来。

A)小括号B)方括号C)大括号D)尖括号

52.若有说明语句:

inta;floatb;,以下输入语句正确的是()。

A)scanf("%f%f",&a,&b);B)scanf("%f%d",&a,&b);

C)scanf("%d,%f",&a,&b);D)scanf("%6.2f%6.2f",&a,&b);

53.以下程序的输出结果是【】。

main()

{intx=11,y=11;

printf("%d%d\\n",x--,--y);

}

A)11,11B)10,10C)10,11D)11,1011.

54.执行下面程序段,给x、y赋值时,不能作为数据分隔符的是()。

intx,y;

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

A)空格B)Tab键C)回车D)逗号

55.下面合法的语句是()。

A)inta=8,b;

b=++a++;

printf("%d,%d",a,b++);

B)inta;

printf("\\"%d\\"",scanf("%d",&a));

C)chara;

scanf("%c",&a);

charb=scanf("b=%c",&b);

D)charc=getchar();

putchar((int)c);

56.执行下面程序时,欲将25和2.5分别赋给a和b,正确的输入方法是()。

inta;

floatb;

scanf("a=%d,b=%f",&a,&b);

A)25□2.5B)25,2.5C)a=25,b=5.5D)a=25□b=2.5

57.与数学公式a·b/x·y不等价的语句是【】。

A)a*b/x*yB)a*b/x/yC)a*b/(x*y)D)a/(x*y)*b

58.对if语句中表达式的类型,下面正确的描述是【】。

A)必须是关系表达式B)必须是关系表达式或逻辑表达式

C)必须是关系表达式或算术表达式D)可以是任意表达式

59.多重if_else语句嵌套使用时,寻找与else配套的if方法是【】。

A)缩排位置相同的ifB)其上最近的ifC)下面最近的ifD)同行上的if

60.以下错误的if语句是【】。

A)if(x>y)z=x;B)if(x==y)z=0;

C)if(x!

=y)printf("%d",x)elseprintf("%d",y);D)if(x

61.以下判断两个字符串相等的正确方法是【】。

A)if(str1=str2)B)if(str1==str2)

C)if(strcpy(str1,str2)=0)D)if(strcmp(str1,str2)==0)

62.执行下面程序的正确结果是【】。

main()

{floata=1.9;

switch(a)

{case0:

printf("0000");

case1:

printf("1111");

case2:

printf("2222");

}

printf("%f",a);

}

A)1.900000B)111122221.900000C)22221.900000D)0000111122221.900000

63.以下程序的输出为【】。

main()

{inta=20,b=30,c=40;

if(a>b)a=b,

b=c;c=a;

printf("a=%d,b=%d,c=%d",a,b,c);

}

A)a=20,b=30,c=20B)a=20,b=40,c=20C)a=30,b=40,c=20D)a=30,b=40,c=30

64.对于条件表达式(k)?

(i++):

(i--)来说,其中的表达式k等价于【】。

A)k==0B)k==1C)k!

=0D)k!

=1

65.执行下面的程序后,输出为()。

main()

{intm=20;

swith(m)

{case19:

m+=1;

case20:

m+=1;

case21:

m+=1;

case22:

m+=1;

}

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

A)20B)21C)22D)23

二、阅读程序题

阅读程序对于初学者来说很重要,一方面可以巩固所学的语法知识,另一方面通过阅读别人写好的程序来打开自己的思路,就所谓见多识广。

通过阅读理解程序,从给出的四个备选参考答案中,选择程序的正确输出。

如果选择有误,就要认真分析原因,是概念方面的错误还是对程序逻辑理解不对,从而加深对语法规则的理解,提高程序设计能力。

程序设计语言是开发程序的一个工具,学习语言的目的是为了编写程序来解决实际问题,所以特别提倡通过实际上机来检验备选答案,增强动手能力。

1.下面程序的输出结果是____。

#include

main()

{intx=10;

{intx=20;

printf("%d,",x);

}

printf("%d\n",x);

}

A)10,20B)20,10C)10,10D)20,20

2.以下程序的输出结果是____。

main()

{intx=10,y=10;printf("%d%d\n",x――,――y);

}

A)1010B)99C)910D)109

3.下面程序可能的输出结果是____。

main()

{inta,b;

scanf("%2d%3d",&a,&b);

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

}

A)a=12b=34B)a=123b=45C)a=12b=345D)语句右错误

4.以下程序段的输出结果是____。

inta=10,b=50,c=30;

if(a>b)

a=b;

b=c;

c=a;

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

A)a=10b=50c=10B)a=10b=30c=10C)a=50b=30c=10D)a=50b=30c=50

5.以下程序的输出结果是____。

main()

{inta=0,b=1,c=0,d=20;

if(a)d=d-10;

elseif(!

b)

if(!

c)d=15;

elsed=25;

printf("d=%d\n",d);

}

A)d=10B)d=15C)d=20D)d=25

6.下面程序的输出结果为____。

main()

{inta=1,b=0;

switch(a)

{case1:

switch(b)

{case0:

printf("**0**");break;

case1:

printf("**1**");break;

}

case2:

printf("**2**");break;

}

}

A)**0**B)**0****2**C)**0****1****2**D)有语法错误

7.以下程序的输出结果是____。

main()

{char*s="12134211";

intv1=0,v2=0,v3=0,v4=0,k;

for(k=0;s[k];k++)

switch(s[k])

{case'1':

v1++;

case'3':

v3++;

case'2':

v2++;

default:

v4++;

}

printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4);

}

A)v1=4,v2=2,v3=1,v4=1B)v1=4,v2=9,v3=3,v4=1

C)v1=5,v2=8,v3=6,v4=1D)v1=4,v2=7,v3=5,v4=8

8.下面程序的输出是____。

main()

{intnum=0;

while(num<=2)

{num++;

printf("%d\n",num);

}

}

A)1B)1C)1D)1

222

33

4

9.从键盘上输入"446755"时,下面程序的输出是____。

#include

main()

{intc;

while((c=getchar())!

='\n')

switch(c-'2')

{case0:

case1:

putchar(c+4);

case2:

putchar(c+4);break;

case3:

putchar(c+3);

default:

putchar(c+2);break;

}

printf("\n");

}

A)888988B)668966C)88898787D)66898787

10.下面程序的输出结果是____。

main()

{inti,j,x=0;

for(i=0;i<2;i++)

{x++;

for(j=0;j<-3;j++)

{if(j%2)

continue;

x++;

}

x++;

}

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

}

A)x=4B)x=8C)x=6D)x=12

11.下面程序的输出结果是____。

#i

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

当前位置:首页 > 法律文书 > 调解书

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

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