C程序设计复习题1.docx

上传人:b****3 文档编号:11747132 上传时间:2023-06-02 格式:DOCX 页数:28 大小:32.24KB
下载 相关 举报
C程序设计复习题1.docx_第1页
第1页 / 共28页
C程序设计复习题1.docx_第2页
第2页 / 共28页
C程序设计复习题1.docx_第3页
第3页 / 共28页
C程序设计复习题1.docx_第4页
第4页 / 共28页
C程序设计复习题1.docx_第5页
第5页 / 共28页
C程序设计复习题1.docx_第6页
第6页 / 共28页
C程序设计复习题1.docx_第7页
第7页 / 共28页
C程序设计复习题1.docx_第8页
第8页 / 共28页
C程序设计复习题1.docx_第9页
第9页 / 共28页
C程序设计复习题1.docx_第10页
第10页 / 共28页
C程序设计复习题1.docx_第11页
第11页 / 共28页
C程序设计复习题1.docx_第12页
第12页 / 共28页
C程序设计复习题1.docx_第13页
第13页 / 共28页
C程序设计复习题1.docx_第14页
第14页 / 共28页
C程序设计复习题1.docx_第15页
第15页 / 共28页
C程序设计复习题1.docx_第16页
第16页 / 共28页
C程序设计复习题1.docx_第17页
第17页 / 共28页
C程序设计复习题1.docx_第18页
第18页 / 共28页
C程序设计复习题1.docx_第19页
第19页 / 共28页
C程序设计复习题1.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C程序设计复习题1.docx

《C程序设计复习题1.docx》由会员分享,可在线阅读,更多相关《C程序设计复习题1.docx(28页珍藏版)》请在冰点文库上搜索。

C程序设计复习题1.docx

C程序设计复习题1

《程序设计基础》复习题

一、选择题

1.下列选项中,合法的C语言变量名是(A)。

P49

A、_123abcB、123fC、defaultD、c\abc

2.设有定义:

charstr[20];能将“Cprogram”输入给str的语句是(A)。

A.gets(str);B.getchar(str);C.puts(str);D.scanf(“%c”,str);

3.在C语言中,合法的字符常量是:

(A)

A.‘\x43’‘B.\084’C.‘ab’D.“\0”

4.C程序从(A)开始执行。

A、main函数B、printf函数C、第1条语句D、scanf函数

5.按照C语言规定,可以作为函数名的是(A)。

A、defineB、O**KC、fun.cD)、ab$c

6.执行语句printf(“%c\n”,getchar());当键盘输入student<回车>时,结果为(A)。

AsBstudentCstudent‘\0’Dt

7、设u=56,v=37,则语句printf(“%d\n”,u

u:

v);的输出结果是(A)。

A.37B.56C.uD.u

u:

v

8.以下程序的输出结果是(A)P149(strlen字符数组,不包括\0)

main()

{charst[20]="hello\0\t\\\";

printf(%d%d\n",strlen(st),sizeof(st));}

A.520B.99C.1320D.2020

9.以下关于C语言的叙述正确的是:

(A)

A.从main()函数开始执行B.从#includ开始执行

C.从程序中的第一条语句开始执行D.从scanf()开始执行

10.执行语句scanf(“%d%d%d”,&x,&y,&z);后,能将整数5,6,7分别赋给变量x,y,z的是:

(A)P83

A5└┘6└┘└┘7<回车>B5;6;7<回车>

C5,6,7<回车>Dx=5,y=6,z=7<回车>

11.已有定义:

intx=3,y=4,z=5;,则表达式!

(x+y)+z-1&&y+z/2的值是(A).P94

A、1B、2C、0D、6、

12.叙述正确的是:

(A)

A.指针就是地址;

B.形参不是局部变量C.switch语句中必须有break语句;

D.在一个函数内部的复合语句中定义的变量可以在本函数中有效;

13.以下程序段().

intm=0,n=0;

while(!

m!

=0)n+=++m;

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

A.运行后输出1B.控制表达式非法C.运行后输出0D.执行无限多次;

14.为了避免ifelse语句的二义性,C规定else与()配对。

A.其之前最近未配对的ifB.缩排位置相同的if

C.其之后最近未配对的ifD.同一行上的if

15.设变量x为float型且已赋值,则以下语句中能把x的值保留到小数点后两位,并将第3位四舍五入的是()

A、printf("%7.2d",x);B、printf("%8.2f",x);

C、printf("%6.3f",x);D、printf("%.3d",x);

16.以下程序的输出结果是:

()

A.20B.31C.321D.210

#include

voidmain()

{intn=4;

while(n--)printf("%d",--n);

}

17.以下程序的输出结果是:

()

A.21147B.21C.14D.7

#include

voidmain()

{intn=21;

do{

if(n%7)break;

printf("%d",n);}

while(--n);

}

18.在与switch语句配套的case后的表达式:

()

A.只能是常量或常量表达式B.可以是变量或常量C.只能是常量

D.无论是常量还是变量,只要在执行时已经有值就行

19.设有定义:

floata=2,b=4,h=3;其中a,b,h分别表示梯形的底和高,以下C语言表达式不能再去计算出梯形面积的是().

A、(1/2)*(a+b)*hB、h/2*(a+b)C、(a+b)*h/2D、(a+b)*h*1/2

20.复合语句:

{t=a;a=b;b=t;}的功能是()

A.交换a,b的值B.求a,b,t的最小值C.求a,b的最大值D.求a,b,t的最大值

21、else应该和()配对使用。

A.其前最后一个没有配过对的ifB.其前第一个if

C.其后最近的没有配过对ifD.其前最后一个if

22.下列叙述正确的是:

()

A.外循环中的break语句将结束所有循环B.外循环中的continue语句将结束所有循环

C.内循环中的break语句将结束所有循环D.内循环中的continue语句将结束所有循环

23.设j为int型变量,则以下循环语句的执行结果是().

for(j=10;j>3;j--)

{if(j%3)j--;

--j;--j;

printf("%d",j);

}

A、74B、63C、73D、62

24.下列描述中不正确的是()

A.可以对整型数组进行整体输入、输出B可以对字符型数组进行整体输入、输出

C.字符型数组中可以存放字符串

D不能在赋值语句中通过赋值运算符"="对字符型数组进行整体赋值

25.语句strlen(strcat(“very”,”good!

”))的值为()

A.9B.10C.11D.不确定

26.数组名作为实参时实际上被处理成()。

A.该数组首地址B.该数组各元素的值

C.该数组的长度D.该数组的元素个数

27.字符串“Iamastudent。

”占用()个字节。

A、15B、16C、14D、13

28.下列对数组a的定义及初始化中,不正确的的是()

A、inta[2][]={0,1,2,3,4,5};B、inta[][4]={3,5,6,9,2,1,7,4};

C、inta[2][4]={{3,4,5},{2,5,8}};D、inta[2][3]={3,5,6};

29.下列选项中,对数组的不正确的定义是()

A、intn=6,a[n]={0,1,2};B、inta[]={0,1,2,3,4,5};

C、inta[6];D、inta[6]={0,1,3};

30.下列选项中能够把5,6,7赋给数组a的是()。

A.inta[3]={5,6,7};B.inta[3];a[]={5,6,7};

C.inta[];a[3]={5,6,7};D.inta[3]=5,6,7;

31.若有以下说明:

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

charc='a',d,g;

则数值为4的表达式是().

A、a['d'-c]B、a[4]C、a['d'-'c']D、a[g-c]

32.设有定义:

chars1[30]=“good”,s2[]=“bye”;下列选项中能够输出goodbye的是()。

A.puts(strcat(s1,s2));B.puts(strcmp(s1,s2));

C.puts(strcpy(s1,s2));D.puts(strcat(s2,s1);

33.函数strlen(“I└┘am└┘a└┘student。

”)的值等于()。

A、15B、16C、12D13

34.以下数组定义中不正确的是()。

A.intd[3][]={{1,2},{1,2,3},{1,2,3,4}};B.intb[][3]={0,1,2,3};

C.intc[100][100]={0};D.inta[2][3];

35.设有数组定义:

chara[]="China";则数组a所占的空间为()。

A.6个字节B.5个字节C.7个字节D.4个字节

36.以下程序的输出结果是()。

A.3,5,7B.1,4,7C.1,5,9D.3,6,9

voidmain()

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

for(i=0;i<3;i++)printf("%d,",x[i][2-i]);}

37.以下程序的输出结果是()

A.EFGHB.ABCDC.EFGD.ABCDEFGH

IJKLEFGJKFGH

IJOKL

main()

{charw[][10]={"ABCD","EFGH","IJKL","MNOP"},k;

for(k=1;k<3;k++)printf("%s\n",w[k]);}

38.设有以下定义,则所列叙述正确的是().。

charx[]="abcdefg";

chary[]={'a','b','c','d','e','f','g'};

A.数组x的长度大于数组y的长度B.数组x和数组y的长度相同

C.数组x和y完全相同D.数组x的长度小于数组y的长度

40.C语言中函数返回值的类型是由()决定的。

A.定义函数时所指定的函数类型B.该函数的实参类型

C.调用语句D.return语句中表达式的类型

42.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是()。

A.单向值传递B.地址传递

C.由实参传给形参,再由形参传回实参D.传递方式由用户指定

43.关于函数定义,下列说法正确的是:

()

A.C语言规定,函数不可以嵌套定义,可以嵌套调用

B.C语言规定,函数可以嵌套定义,不可以嵌套调用

C.C语言规定,函数既可以嵌套定义,也可以嵌套调用

D.C语言规定,函数既不可以嵌套定义,也不可以嵌套调用

44.设有函数定义:

voidf(intx)下列函数声明语句正确的是()。

A.voidf(int);B.voidf()C.f(intx);D.f(int)

45.设有函数定义:

voidf(intx){……;}下列说法正确的是:

()。

A.f的形参是整型,没有返回值

B.f的形式参数是整型,返回值也是整型

C.因为f返回值的类型是void,所以f一定是空函数

D.因为函数的返回值类型和形参类型不一致,所以函数定义有错误

46.关于函数调用,下列说法正确的是:

()

A.函数可以调用除main函数以外的任意函数

B.标准函数(即库函数)可以调用其它函数,其它函数不能调用标准函数

C.所有的函数都是平等的,所以可以互相调用

D.只有main函数才能调用其它函数,其它函数之间不能互相调用

47.一个C程序可以由多个函数组成,但只能有一个()函数。

A、main函数B、printf函数C、自定义函数D、scanf函数

48.设有函数定义:

intfun(intn,floatx)下列选项中,能正确调用该函数的语句是()。

A、fun(5,2.0);B、fun(5.0,2.0);C、intfun(5,2);D、intfun(5,2.0);

49.以下不正确的说法是()。

A.在函数内的复合语句中定义的变量在本函数范围内有效B.形式参数是局部变量

C.在函数内定义的变量只在本函数范围内有效

D.在不同函数中可以使用相同名字的变量

50.关于函数,下列说法正确的是()。

A.主函数可以调用其它函数,其它函数不能调用主函数

B.所有的函数都可以互相调用

C.只有系统定义的函数才能调用用户自定义的函数

D.函数不能嵌套调用

51.设有函数声明voidfunction(floatx);则函数function是()。

A、不返回值的函数B、空函数C、返回值为实型数据的函数D、无参函数

52.下列函数定义正确的是()。

A.intadd(intx,inty)B.intadd(intx,inty) ;

{{

returnx+y;returnx+y;

}}

C.voidadd(intx,inty);D.intadd(intx,y)

{{

returnx+y;returnx+y;

}}

53.下列关于C函数的叙述中正确的是()。

A.函数不能嵌套定义,可以嵌套调用B.函数必须有return

C.函数必须有输入变量的语句D.函数必须有形参

54.调用函数时,以下叙述不正确的描述是()

A.实参与形参可以共占内存单元B.形参不分配存储单元

C.实参可以是地址D.通常要求实参与形参的类型应一致

55.当调用函数时,实参是一个数组名,则向函数传送的是()。

A.数组的首地址B.数组的长度

C.数组每一个元素的地址D.数组每个元素中的值

56.关于函数,下列说法正确的是:

()

A.函数的返回值类型就是函数中return语句带回值的类型

B.函数的返回值类型必须和形参的类型一致

C.所有的函数必须有返回值

D.所有的函数必须有scanf和printf语句

57.函数f1()在运行中调用了函数f2(),而f2()有调用了f1(),这种调用称为:

()

A.递归调用B.地址调用C.直接调用D.值调用

58.设函数f()的原型为voidf(intarray[],intm);主调函数中有声明:

inta[10];则下列语句正确的是:

()。

A.f(a,10);B.f(&a[i],i);C.voidf(a,10);D.f(inta[10],int10);

59.若有char*str[5];则其中的str是:

()

A.指针数组名B.指针变量名C.字符型数组名D.字符型变量名

60.假设有定义:

int*p,n;char*q,*g,ch;下列语句不正确的是:

()

A.p=&n;g=p=&ch;B.p=&n;q=&ch;

C.p=&n;g=&ch;D.p=&n;q=&ch;g=q;

61.如果变量已被正确定义,指针p指向x,则*&x等价于()。

A.*pB.&*xC.pD.**p

62.设有定义:

inta,*p;下列选项正确的是()。

Ap=&a,*p=23Bp=a=23Cp=&a=23D*p=&a=23

63.设有定义:

int*p[4];下列说法正确的是()。

A.p是由4个指针组成的指针数组,每个指针都可以指向一个整型变量

B.p是指向数组的指针,应该指向由4个整型元素组成的数组

C.*p是由4个指针组成的指针数组,每个指针都可以指向一个整型变量

D.*p是指向数组的指针,应该指向由4个整型元素组成的数组

64.若有说明和语句:

intc[4][5],(*p)[5];p=c;能正确引用数组元素的是().

A、*(p[0]+2)B、*(p+1)+3C、*(p+3)D、p+1

65.以下函数的功能是().

fun(char*p2,char*p1)

{while((*p2=*p1)!

='\0')

{p1++;p2++;}

}

A、将p1所指字符串复制到p2所指内存空间

B、将p1所指字符串的地址赋给指针p2

C、对p1和p2两个指针所指字符串进行比较

D、检查p1和p2两个指针所指字符串中是否有'\0'

66.设有定义:

floata,*p;下列选项能使a的值为2.7的是()。

Ap=&a,*p=2.7;B*p=a,*p=52.7;

C.p=&a,p=2.7;D.p=a,*p=2.7;

67.设:

charstr[]=”computer”;char*p=str;能够输出computer的语句是()。

A、printf(“%s”,p);B、printf(“%c”,*p);

C、printf(“%s”,*p);D、printf(“%c”,p);

68.设有定义:

float*ft[3];下列说法正确的是()。

A.ft是指针数组,它由3个指向实型数据的指针组成

B.*ft是指针数组,它由3个指向实型数据的指针组成

C.ft是指向含有3个实型数据的指针变量

D、D.*ft是指向含有3个实型数据的指针变量

69.设函数f()的原型为voidf(int*x,intm);主调函数中有声明:

inta[10];则下列语句正确的是:

()

A.voidf(a,10);B.f(&a[0],10);C.f(*a,10);D.f(inta[10],int10);

70.设有定义:

(int*p)[3];inta,c[3];则下列语句正确的是:

()

A.p=c;B.*p=&a;C.p=&c[3];D.p=&a;

71.假设变量已正确定义,指针p指向变量x,则*&x等价于:

()

A.*pB.&*xC.pD.**p

72.设有定义:

inti,a[10],*p;则下列语句合法的是:

()

A.p=a+5;B.p=a[2];C.p=20;D.p=&(i+5);

73.语句:

chars[3]="abc";则执行语句char*p=s;之后,*(p+2)的值是()

A.'c'B.'\0'C.'b'D.'b'的地址

74.设有以下说明语句:

structstu

{inta;floatb;}stutype;

则下面的叙述不正确的是:

()

A.stutype是用户定义的结构体类型

B.structstu是用户定义的结构体类型

C.struct是定义结构体类型的关键字

D.a和b都是结构体成员名

75.设有结构体定义:

structstudent{intnum;charname[20];floatscore;}stu1;则下列语句正确的是:

()

A.strcpy(stu1.name,”Lilin”);B.stu1.name[]=”Lilin”;

C.student.stu1.name[]=”Lilin”;D.strcpy(student.stu1.name,”Lilin”);

76.设有定义:

structchild

{charname[20];charxb;intage;}child_1,child_2;

能将“Liliang”赋给child_1的变量name的正确语句是()

A.strcpy(child_1.name,”Liliang”);B.strcpy(child.name,”Liliang”);

C.child.Name=“Liliang”;D.child_1.name=”Liliang”;

77.设有定义:

structps{intnum;charname[20];}psA;

下列语句正确的是()。

A.psA.num=12,strcpy(psA.name,"Xiaoli");B.ps.num=12,ps.name="Xiaoli";

C.num=12,name="Xiaoli";D.psA.num=12,psA.name="Xiaoli

78.设有定义:

structworker{charname[20];charsex;intage;}work1;则下列语句正确的是:

()

A.work1.age=34;B.age=34;

C.worker.work1.age=34;D.struct.worker.work1.age=34;

79.定义同上题,下列语句正确的是:

()

A.strcpy(work1.name[],”Liugang”);

B.strcpy(name,”Liugang”);

C.wor1.name[]=”Liugang”;

D.strcpy(work1.name,”Liugang”);

二、填空题:

1.用printf函数在屏幕上显示D:

\test\next的字样,应使用语句。

2.设有定义floatx=-56.632256;要在屏幕上显示x=-56.63,应使用语句。

3.已知整型变量n的初值为3,h的初值为1,则执行语句doh=h*n--;while(n);后h的值为。

4.设有语句:

chars[]=”Hello,2014.”;在屏幕上输出数组s,可使用C语句(可用你所熟悉的任何一条语句)。

5.设已定义字符型变量c1,c2,c3,则执行语句:

scanf(“%c%c%c”,&c1,&c2,&c3);后,输入a,b,c回车后,c1,c2,c3的值分别为。

6.条件表达式语句

y=x<1?

x:

x>=1&&x<10?

2*x-1:

3*x-11;

的if语句为。

7.能够正确表示y=|a-b|的C语言表达式为。

8.判别字符型变量ch的值是小写字母为真的C语言表达式为。

9.已知整型变量n的初值为3,h的初值为1,则执行语句doh=h*n--;while(n);后h的值为。

10.用PI表示常数3.14159的宏定义为.

11.使字符常量G的值等于9.8的宏定义命令是。

12、当键盘输入为ABCD【回车】时,语句ch=getchar();的值为。

13.设有以下变量定义,并已赋确定的值charw;intx;floaty;doublez;则表达式:

w*x+z-y所求得的数据类型为。

14.表示“整数x的绝对值大于6”时值为真的C语言表达式是。

15.已知整型变量a的初值为6,b的初始值为1,则执行语句dob+=a--;while(a);后b的值为。

16.数学函数asin的原型为:

doubleasin(doublex);功能是计算arcsin(x)的值。

使用该函数时,应该加上文件包含指令。

17.如果在C程序中要用到库函数中字符串比较函数strcmp,那么在程序前面应该加文件包含命令:

()。

18.设有定义chars1[20]={“v

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

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2