C复习资料级用.docx
- 文档编号:9914264
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:34
- 大小:46.83KB
C复习资料级用.docx
《C复习资料级用.docx》由会员分享,可在线阅读,更多相关《C复习资料级用.docx(34页珍藏版)》请在冰豆网上搜索。
C复习资料级用
一、选择题
1、一个C程序中可以包含多个不同名的函数,但有且仅有一个C。
(A)function(B)include(C)main(D)stdio
2、在C语言中,每个语句和数据定义都是用A结束的。
(A)分号(B)逗号(C)句号(D)括号
3、B不是C语言中提供的合法关键字。
(A)switch(B)print(C)case(D)default
4、在C语言中,数据类型属于基本类型的是A。
(A)整型、实型、字符型(B)空类型、枚举型
(C)结构体类型、实型(D)数组类型、实型
5、下面四个选项中,均为不合法的用户标识符的是C。
(A)Ap_0do(B)floatla0a
(C)b-agotoint(D)123tempINT
6、语句inti=3,k;k=(i++)+(i++)+(i++);执行后k和i的值分别为A。
(A)9和6(B)12和5(C)18和6(D)15和5
7、判断字符串a和b相等,应当使用C。
(A)if(a==b)(B)if(!
strcmp(a,b))
(C)if(strcpy(a,b))(D)if(strcmp(a,b))
8、设a,b,c都是int型变量,且a=3,b=4,c=5;则以下表达式中,值为0的是D。
(A)a&&b(B)a<=b(C)a||b+c&&b-c(D)!
((a
c||1)
9、
用于表示输入输出的程序流程图的图形是B。
(A)(B)(C)(D)
10、已知i、j、k为int型变量,若从键盘输入:
1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是C。
(A)scanf(“%2d%2d%2d”,&i,&j,&k);
(B)scanf(“%d%d%d”,&i,&j,&k);
(C)scanf(“%d,%d,%d”,&i,&j,&k);
(D)scanf(“i=%d,j=%d,k=%d”,&i,&j,&k);
11、能正确表示“x的取值范围介于[1,10]和[200,210]之间“的表达式是C。
(A)(x>=1)&&(x<=10)&&(x>=200)&&(x<=210)
(B)(x>=1)||(x<=10)||(x>=200)||(x<=210)
(C)(x>=1)&&(x<=10)||(x>=200)&&(x<=210)
(D)(x>=1)||(x<=10)&&(x>=200)||(x<=210)
12、在C语言中,多分支选择结构语句为:
switch(c)
{case常量表达式1:
语句1;
……
case常量表达式n-1:
语句n-1;
default:
语句n;}
则括号内表达式c的类型允许的是B。
(A)整型(B)整型或字符型(C)整型或实型(D)任意类型
13、C语言对嵌套if语句的规定是:
else总是与A配对。
(A)其之前最近的if(B)第一个if
(C)缩进位置相同的if(D)其之前最近且不带else的if
14、若i为整型变量,则以下循环执行次数是D。
for(i=2;i==0;)printf(“%d”,i--);
(A)无限次(B)0次(C)1次(D)2次
15、设a和b为int型变量,则执行以下语句后,b的值是A。
inta=1,b=10;
do
{b-=a;a++;}
while(b--<0);
(A)-1(B)-2(C)8(D)9
16、若有以下定义,则正确的语句为D。
inta,b;
floatx=2.5;
(A)a=1,b=2,(B)b++;(C)a=b=5,(D)b=int(x);
17、设x、y、z和k都是int型变量,则执行表达式:
x=(y=4,z=16,k=32)后,x的值为C。
(A)4(B)16(C)32(D)52
18、有如下语句
printf(“%s,%5.3s\n”,“COMPUTER”,“COMPUTER”);
则语句执行的最终结果为A。
(A)COMPUTER,COM(B)COMPUTER,COM
(C)COMPU,COM(D)COMPU,COM
19、在C语言程序中关于函数的规定为B。
(A)函数的定义可以嵌套,但函数的调用不可以嵌套
(B)函数的定义不可以嵌套,但函数的调用可以嵌套
(C)函数的定义和调用都不可以嵌套
(D)函数的定义和调用都可以嵌套
20、若有以下定义和语句:
doubler=99,*p=&r;
*p=r;
则以下叙述正确的是。
(A)以下两处的*p含义相同,都说明给指针变量p赋值
(B)在"doubler=99,*p=&r;"中,把r的地址赋值给了p所指的存储单元
(C)语句"*p=r;"把变量r的值赋给指针变量p
(D)语句"*p=r;"取变量r的值放回r中
21、设intx[]={1,2,3,4,5,6},*p=x;则值为3的表达式是。
(A)p+=2,*++p(B)p+=2,*p++(C)p+=3,*p(D)p+=2,++*p
22、若intx,*pb;,则正确的赋值表达式是。
(A)pb=&x(B)pb=x;(C)*pb=&x;(D)*pb=*
23、若有说明:
inta[10];则对数组元素的正确引用是A。
(A)a[10](B)a[3.5](C)a(5)(D)a[10-10]
24、若有以下定义:
inta[5]={5,4,3,2,1};
charb=‘a’;
则能使数值为2的表达式是A。
(A)a[4](B)a[‘c’-b](C)a[‘d’-b](D)a[‘e’-b]
25、如果在一个函数的复合语句中定义了一个变量,则该变量A。
(A)在该复合语句中有效(B)在该函数中有效
(C)在本程序范围内有效(D)为非法变量
26、要求函数fun的功能是交换x和y中的值,且通过正确调用返回交换结果。
能正确执行此功能的函数定义是D。
(A)fun(int*x,int*y){int*p;*p=*x;*x=*y;*y=*p;}
(B)fun(intx,inty){intt;t=x;x=y;y=t;}
(C)fun(int*x,int*y){*x=*y;*y=*x;}
(D)fun(int*x,int*y){*x=*x+*y;*y=*x-*y;*x=*x-*y;
27、以下选项中,能定义s为合法的结构体变量的是。
(A)typedefstructabc(B)struct
{doublea;{doublea;
charb[10];charb[10];
}s;}s;
(C)structABC(D)typedefABC
{doublea;{doublea;
charb[10];charb[10];
}}
ABCs;ABCs;
28、设有以下说明语句:
structstu
{inta;floatb;}stutype;
则叙述不正确的是。
(A)struct是结构体类型的关键字
(B)structstu是用户定义的结构体类型
(C)stutype是用户定义的结构体类型名
(D)a和b都是结构体成员名
29、C语言的执行总是起始于D。
(A)程序中的第一条执行语句(B)程序中的第一个函数
(C)包含文件中的第一个函数(D)主函数main
30、
用于表示加工处理的程序流程图的图形是A。
(A)(B)(C)(D)
31、如有声明charx=’\72’,则x中存放的是A。
(A)1个字符(B)2个字符(C)3个字符(D)声明不合法
32、要调用数学函数时,在#include命令中应包含C。
(A)stdio.h(B)string.h(C)math.h(D)ctype.h
33、若x为int型,y为float型,假设输入格式为:
4.5□2<回车>(□表示空格),则以下合法的输入语句是D。
(A)scanf(“%d,%f”,&x,&y);(B)scanf(“%f,%d”,&y,&x);
(C)scanf(“%d%f”,&x,&y);(D)scanf(“%f%d”,&y,&x);
34、已知ch是字符型变量,下面不正确的赋值语句是D。
(A)ch=5+9;(B)ch=‘\0’;
(C)ch=‘7’+‘9’;(D)ch=‘a+b’;
35、在一个C的源程序中,main函数的位置C。
(A)必须在最开始(B)必须在系统调用的库函数的后面
(C)可以任意(D)必须在最后
36、若已定义x和y为double类型,则表达式:
x=1,y=x+3/2的值是B。
(A)1(B)2(C)2.0(D)2.5
37、设有程序段为:
intk=10;while(k==0)k=k–1;
则下面描述中正确的是B。
(A)循环体语句执行一次(B)循环体语句一次也不执行
(C)while循环执行了10次(D)循环是无限的
38、若有以下程序段:
intc1=1,c2=2,c3;
c3=1.0/c2*c1;
则执行后,c3中的值是A。
(A)0(B)0.5(C)1(D)2
39、字符(char)型数据在计算机内存中的存储形式是D。
(A)反码(B)补码(C)EBCDIC码(D)ASCII码
40、在C语言中,以下不正确的说法是A。
(A)实参可以是常量、变量或表达式
(B)形参可以是常量、变量或表达式
(C)实参与形参的个数应一致
(D)形参应与其对应的实参类型一致
41、在C语言提供的合法的关键字是C。
(A)swicth(B)cher(C)case(D)defaulte
42、在C语言中,引用数组元素时,其数组下标的数据类型允许是C。
(A)整型常量(B)整型表达式
(C)整型常量或整型表达式(D)任何类型的表达式
43、若有以下说明:
inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};
charc='a',d,g;
则数值为4的表达式是A。
(A)a[g-c] (B)a[4] (C)a['d'-'c'] ( D)a[d-c]
44、如有inta[3][4],则对a数组元素非法引用的是C。
A、a[0][2*1]B、a[1][3]C、a[4-2][0]D、a[0][4]
45、以下正确的函数定义形式是A。
(A)doublefun(intx,inty)(B)doublefun(intx;inty)
(C)doublefun(intx,inty);(D)doublefun(intx,y)
46、以下能对一维数组a进行正确初始化的语句是A。
(A)inta[10]=(0,0,0,0,0);(B)inta[10]={};
(C)inta[10]={0};(D)inta[10]={10*0};
47、C语言规定,函数返回值的类型是由D决定。
(A)return语句中的表达式类型
(B)调用该函数时的主调函数类型所
(C)调用该函数时系统临时
(D)在定义该函数时所指定的函数类型所
48、若有说明:
inti,j=2,*p=&j;,则能完成i=j赋值功能的语句是。
(A)i=*p;(B)*p=*&j;(C)i=&j;(D)i=**p;
49、下列程序使用指针p引用一个整形数组a的正确方式是。
(A)int*p=&a(B)int*p;p=a[0];(C)int*p;*p=a;(D)int*p;p=a;
50、已知inta[5];,则下列式子中不能正确使用指针p引用一个数组a的是。
(A)int*p=a;(B)int*p;p=&a[0];(C)int*p;p=a;(D)int*p;p=&a;
51、C语言中,凡是未指定存储类别的局部变量,其隐含的存储类型是A。
(A)auto(B)static(C)extern(D)register
52、判断字符串a大于字符串b,应当使用B。
(A)if(a>b)(B)if(strcmp(a,b))
(C)if(strcmp(a,b)>0)(D)if(strcmp(b,a)>0)
53、设有以下说明语句
typedefstruct
{intn;
charch[8];
}PER;
则下面叙述中正确的是。
(A)PER是结构体变量名(B)PER是结构体类型名
(C)typedefstruct是结构体类型(D)struct是结构体类型名
54、有如下定义
structperson{charname[9];intage;};
structpersonclass[10]={"Johu",17,"Paul",19,"Mary",18,"Adam",16};
根据上述定义,能输出字母M的语句是。
(A)prinft("%c\n",class[3].name);
(B)printf("%c\n",class[3].name[1]);
(C)prinft("%c\n",class[2].name[1]);
(D)printf("%c\n",class[2].name[0]);
55、若定义inta[10],*p=&a;则p+5表示的是。
(A)数组元素a[5]的值(B)数组元素a[5]的地址
(C)数组元素a[6]的值(D)数组元素a[6]的地址
56、C语言程序的基本单位是C。
(A)程序行(B)语句(C)函数(D)字符
57、C语言编写的程序经过编译和链接后形成的可执行性二进制文件的后缀名为D。
(A).c(B).cpp(C).obj(D).exe
58、以下叙述正确的是B。
(A)continue语句的作用是结束整个循环的执行
(B)只能在循环体内和switch语句体内使用break语句
(C)在循环体内使用break语句与使用continue语句的作用相同
(D)switch语句中也可以使用continue语句
59、
用于选择判断语句的流程图图形是C。
(A)(B)(C)(D)
60、如果变量c的定义是charc;,则以下哪一个赋值语句是正确的A。
(A)c=‘\n’,(B)c=“a”;(C)c=’65’;(D)c=”65”;
61、将-3 (A)-3 62、如果inta,b;floatc;doubled;,则下列表达式正确的是B。 (A)(a*b)=d(B)(a+b)%(int)(c+d) (C)a==c=d(D)a%(c+(int)d) 63、C语言中的标识符只能是由字母、数字和下划线三种字符组成,且第一个字符D。 (A)必须是字母(B)必须为下划线 (C)必须为字母或下划线(D)可以是字母、数字或下划线中任一种字符 64、C语言中,运算对象必须是整型数的运算符是A。 (A)% (B)\ (C)%和\ ( D)* 65、与数学式子 对应的C语言表达式是C。 (A)3*x^n(2*x-1)(B)3*x**n(2*x-1) (C)3*pow(x,n)*(1/(2*x-1))(D)3*pow(n,x)/(2*x-1) 66、若有说明语句inta[][3]={1,2,3,4,5,6};则a数组第一维的大小是A。 (A)2(B)3(C)4(D)不确定的 67、设inta=12,则执行完语句a+=a-=a*a后,a的值是A。 (A)-264(B)144(C)264(D)552 68、设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是D。 (A)6.500000(B)6(C)5.500000(D)6.000000 69、有下列的函数定义: intsum(inta,intb,intc) {return(a+b+c);} 则该函数的正确调用方式是A。 (A)SUM(4,5,6);(B)sum(4+5,5*6,7);(C)sum(4,5);(D)sum(‘a’,’b’,3.5); 70、有下列语句 for(i=0;i<10;i++) ; {printf(“*”);} 执行后的输出会产生C。 (A)0个“*”(B)1个“*”(C)10个“*”(D)11个“*” 71、有下列程序 f1(){....} inta=0; f2(){....} f3(){....} 则变量a的作用域范围是C。 (A)f1()、f2()和f3()(B)f1()和f2()(C)f2()和f3()(D)仅f2() 72、对下列数组正确定义的是D。 (A)inta[5]=1,2,3,4,5;(B)inta[]={1,2,3,4,5}; (C)int[]a={1,2,3,4,5};(D)inta[5]={1,2,3,4,5,6}; 73、对下列数组语句描述正确的是D。 inta[5]; a[2]=6; (A)5和2分别代表数组a的长度 (B)5和2分别代表数组a中的两个数组元素下标 (C)5代表数组a中的一个数组元素下标,2代表数组a的长度 (D)5代表数组a的长度,2代表数组a中的一个数组元素下标 74、inta[3][3]={1,2,3,4,5,6,7,8,9}; 其中,数字7所在的二维数组元素是B。 (A)a[2][0](B)a[2][1](C)a[2][3](D)a[3][1] 75、inti=5,*p; p=&i; 则通过指针变量p得到5的方式是。 (A)&p(B)p(C)*p(D)**p 76、C语言中,函数类型的定义可以缺省,此时函数值的隐含类型是B。 (A)void(B)int(C)float(D)double 77、以下选项中,与k=n++完全等价的表达式是A。 (A))k=n,n=n+1(B)n=n+1,k=n(C)k=++n(D)k+=n+1 78、说明一个结构体变量时系统分配给它的内存是。 (A)各成员所需要内存量的总和 (B)结构体中第一个成员所需内存量 (C)成员中占内存量最大者所需的容量 (D)结构中最后一个成员所需内存量 79、设有如下定义: structsk{inta;floatb;}data,*p; 若有p=&data;,则对data中的a域的正确引用是。 (A)(*p).data.a(B)(*p).a(C)p->data.a(D)p.data.a 80、以下对结构体成员age的非法引用是。 structstudent{intage;intnum;}stud1,*p;p=&stud1; (A)stud1.age(B)student.age (C)p->age(D)(*p).age 81、有以下说明和定义: structstudent {intage;charnum[8];}; structstudentstu[3]={{20,"200401"},{21,"200402"},{109,"200403"}}; structstudent*p=stu; 则引用结构体变量成员的错误表达式是。 (A)(p++)->num (B)p->num(C)(*p).num(D)stu[3].age 82、putchar函数可以向终端输出一个D。 (A)整型变量表达式值(B)实型变量值 (C)字符串(D)字符或字符型变量值 83、若用数组名作为函数的实参,传递给形参的是A。 (A)数组的首地址(B)数组第一个元素的值 (C)数组中全部元素的值(D)数组元素的个数 84、对语句staticinta[10]={6,7,8,9,10};的正确理解是B。 (A)将5个初值依次赋给a[1]到a[5] (B)将5个初值依次赋给a[0]到a[4] (C)将5个初值依次赋给a[6]到a[10] (D)因为数组长度与初值的个数不相同,所以此语句不正确 85、已有定义inta=2,b=5;int*p1=&a,*p2=&b;下面不能执行的赋值语句是。 (A)a=*p1+*p2;(B)p2=a; (C)p1=p2;(D)a=*p1*(*p2); 86、有两个字符数组a、b,则以下正确的输入格式是C。 (A)gets(a,b);(B)scanf(“%s%s”,a
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 复习资料