C语言程序设计复习选择题无答案版.pdf

上传人:s****u 文档编号:12830079 上传时间:2020-05-30 格式:PDF 页数:96 大小:574.87KB
返回 下载 相关 举报
C语言程序设计复习选择题无答案版.pdf_第1页
第1页 / 共96页
C语言程序设计复习选择题无答案版.pdf_第2页
第2页 / 共96页
C语言程序设计复习选择题无答案版.pdf_第3页
第3页 / 共96页
点击查看更多>>
资源描述
C语言程序的组成1.函数型语言,函数是C程序的基本单位。2.函数由说明部分和函数体两部分组成函数的组成: 说明部分:函数类型 函数名(参数类型 参数名,) 例: int add(int x,int y) 或 int add(x,y) int x,y; 函数体: 变量定义; 执行语句; 3. 主函数main():程序中有且只有一个main()函数,可在任意位置,是程序运行开始和结束。4. 书写格式自由: 一行内可多条语句,空格和回车符不计。一个语句可多行,用“”续行。 5. 每个语句后有“;”,函数说明部分除外。6. C语言本身没有输入输入语句,输入输出用库函数scanf()、printf()、getchar()、putchar()实现。 7. 可在任意位置加注释/* */,可多行,不可嵌套。2016-6-27C与C+程序设计教程-第二章1 题1.1一个C程序的执行是从 。A)本程序的main函数开始,到main函数结束B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C)本程序的main函数开始,到本程序文件的最后一个函数结束D)本程序文件的第一个函数开始,到本程序main函数结束 2016-6-27C与C+程序设计教程-第二章2 题1.2以下叙述正确的是 。A)在C程序中,main函数必须位于程序最前面B)C程序的每行中只能写一条语句C)C语言本身没有输入输出语句D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误题1.3以下叙述不正确的是 。A)一个C源程序可由一个或多个函数组成B)一个C源程序必须包含一个main函数C)C程序的基本组成单位是函数D)在C程序中,注释说明只能位于一条语句的后面 2016-6-27C与C+程序设计教程-第二章3 题1.4C语言规定:在一个源程序中,main函数的位置 。A)必须在最开始B)必须在系统调用的库函数的后面C)可以任意D)必须在最后题1.5 一个C语言程序是由 。A)一个主程序和若干子程序组成 B)函数组成C)若干过程组成 D)若干子程序组成 2016-6-27C与C+程序设计教程-第二章4 2.C语言的标识符 根据需要对C程序中用到的变量、符号常量、自己的函数或文件指针进行命名,形成用户标识符。构成规则: 标识符由字母、数字或下划线构成,但第一个字符必须是字母或下划线,中间不能有空格;标识符中大小写字母是不同的;用户定义标识符时,不允许采用系统的关键宇。 2016-6-27C与C+程序设计教程-第二章5 下列字符串中不能作为C+标识符使用的是( )。A WHILEB userC _lvarD 9stars 2016-6-27C与C+程序设计教程-第二章6 下列符号中,正确的C+标识符是A enumB 2bC foo-9D _32 2016-6-27C与C+程序设计教程-第二章7 3.字符常量 C 语言的字符常量是用单引号(即撇号)括起来的一个字符。如a,A,?,$等都是字符常量。注意:a和A是不同的字符常量。除了以上形式的字符常量外,C 还允许用一个开头的字符序列。 2016-6-27C与C+程序设计教程-第二章8 以下不合法的字符常量是_。A 018B C D xccP24 2016-6-27C与C+程序设计教程-第二章9 下列叙述中,错误的是A false是一个逻辑型常量 B b是一个字符型常量C 365是一个int常量 D 3.1415926是一个double常量 2016-6-27C与C+程序设计教程-第二章10 4.实数常量 实数常量有两种表示形式:十进制小数形式和指数形式。用指数形式表示必须注意字母 e(或 E)之前必须有数字,且 e(或 E)后面的指数必须为整数。如:e3、7e3.5、8.0E0.5 都是不合法的。 2016-6-27C与C+程序设计教程-第二章11 以下不合法的数值常量是_。A 11 B le1 C 8.0E0.5 D 0 xabcd 2016-6-27C与C+程序设计教程-第二章12 以下选项中不能作为合法常量的是_。A 12340B 1.234e0.4C 12340D 1.234 2016-6-27C与C+程序设计教程-第二章13 下列错误的十六进制型常量表示是_。 A 0 x2f B0 xg C 0 x88 D 0 xaf 2016-6-27C与C+程序设计教程-第二章14 5.转义符 c+的字符串“t1234”中包含的转义符有_个。A 4 B 3 C 2 D 5 2016-6-27C与C+程序设计教程-第二章15 下面语句执行后的输出结果是_。coutstrlen(”xdn0211n”)=f=m 2016-6-27C与C+程序设计教程-第二章19 8.在逗号表达式(35)(表达式 1,表达式 2)中,其运算方法是先求表达式 1 的值,然后求表达式 2 的值, 整个逗号表达式的值是表达式 2 的值。有以下程序:main() char a1=M,a2=m; cout(a1,a2);以下叙述中正确的是_。A 程序输出大写字母 MB 程序输出小写字母 mC 格式说明符不足,编译出错D 程序运行时产生出错信息 2016-6-27C与C+程序设计教程-第二章20 【单选题】若x和y都是整型变量,则x=3,y=5,则以下语句输出的结果是_。cout(x,y)endl;A 3,5 B 语句格式有错,无输出结果C 5 D 3 2016-6-27C与C+程序设计教程-第二章21 9.逻辑运算符逻辑运算符的优先级由高到低运算次序如下:!(非),则以下选项中值为 0 的表达式是_。A (!a=1) a=d/10%9; b=a Couta, “b; 程序运行后的输出结果是_。A 6,1 B 2,1 C 6,0 D 2,0 2016-6-27C与C+程序设计教程-第二章23 10.三目运算符 三目运算符的一般形式为(表达式 1)?(表达式 2):(表达式 3),当(表达式 1)值为真时,(表达式 2)的值 为整个表达式的值;当(表达式 1)的值为假时,(表达式 3)的值为整个表达式的值。 2016-6-27C与C+程序设计教程-第二章24 有以下程序段:int k=0,a=1,b=2,c=3;k=ac?c:k;执行该程序段后,k 的值是_。A 3B 2C 1D 0 2016-6-27C与C+程序设计教程-第二章25 若整型变量 a、b、c、d 中的值依次为 1、4、3、2。则条件表达式 ab?a:cd?c:d 的值 是_。A 1B 2C 3D 4 2016-6-27C与C+程序设计教程-第二章26 11.自增自减 自加运算符是单目运算符,运算对象必须为变量,不能是常量和表达式已知下列语句中的x和y都是int型变量,其中错误的语句是【 】A xy: B xy;C (xy) D xy; 2016-6-27C与C+程序设计教程-第二章27 有以下程序:main() int m=12,n=34; coutm+n; coutn+ D + 2016-6-27C与C+程序设计教程-第二章31 【单选题】下列运算符中优先级最低的是_。A ! B B char c=32;C float f=f+1.1;D double x=12.3E2.5; 2016-6-27C与C+程序设计教程-第二章33 语句“int n1=n2=10;”中,由于变量 n2 未定义,所以此赋值语句错误;由于赋值语句中不能存在运算表达式,所以选项 C 中的赋值语句错误;选项 D 中指数表示错误,C 语言规定,e 后面的指数必须为 整数;选项 B 中的“32”是 ASCII 码的表示形式,这是 C 语言中字符型数据和整型数据通用的表现,即一 个字符数据可以以字符形式出现,也可以以整数形式出现。 2016-6-27C与C+程序设计教程-第二章34 15 if语句的条件部分是一个表达式而不是语句if语句的语法格式可描述为:格式1:if(条件)语句 或 格式2:if(条件)语句1else语句2 关于上面的语法格式,下列表述中错误的是A 条件部分可以是一个if语句,例如if(if(a=0)B 语句部分可以是一个if语句,例如if()if()C 如果在条件前加上逻辑非运算符!并交换语句1和语句2的位置,语句功能不变D 语句部分可以是一个循环语句,例如if()while() 2016-6-27C与C+程序设计教程-第二章35 16当 if(表达式)后有多条语句的话则需要用将其括起,否则编译出错。有以下程序main()int a=0,b=0,c=0,d=0; if(a=1) b=1;c=2; else d=3;Couta“,”b“,”c”,”d;程序输出_。A 0,1,2,0B 0,0,0,3C 1,1,2,0D 编译有错 2016-6-27C与C+程序设计教程-第二章36 有以下程序:main()int i=1,j=2,k=3; if(i+=1程序运行后的输出结果是_。A 1 2 3B 2 3 4C 2 2 3D 2 3 3 2016-6-27C与C+程序设计教程-第二章37 下程序运行的结果是-_。#includevoid main() int a=0,b=1,c=0,d=20;if(a) d-=10;else if(!b)if(!c)d=15;else d=25;coutdy)if(y0)z=0;else z+;else x+;coutxzn; switch(n) case 1: case 2: cout1; case 3: case 4:cout2; break;default:cout3; 时,若键盘输入1,则屏幕显示【 】A 1 B 2 C 3 D 12 2016-6-27C与C+程序设计教程-第二章44 18.while语句有如下程序:int x3;do x2; coutx; while(!(-x); 执行这个程序的输出结果是A 1 B 30 C 1-2 D 死循环 2016-6-27C与C+程序设计教程-第二章45 执行语句序列 int i=0;while(i25)i+=3;couti; 输出结果是A 24 B 25 C 27 D 28 2016-6-27C与C+程序设计教程-第二章46 有如下语句序列; int k=0; dok+=5;cout$;) while(k19); while(k-0)cout*; 执行上面的语句序列输出字符$和*的个数分别是A 4和20 B 5和20 C 4和21 D 5和21 2016-6-27C与C+程序设计教程-第二章47 有如下程序段: int i=1; while (1) i+; if(i = 10) break; if(i%2 = 0) cout *; 执行这个程序段输出字符*的个数是A 10 B 3 C 4 D 5 2016-6-27C与C+程序设计教程-第二章48 有以下程序段:int n,t=1,s=0;scanf(%d,do s=s+t; t=t-2; while (t!=n); 为使此程序段不陷入死循环,从键盘输入的数据应该是_。A 任意正奇数 B 任意负偶数 C 任意正偶数 D 任意负奇数 答案:D 2016-6-27C与C+程序设计教程-第二章49 有以下c+程序:#includevoid main()int x;docout+x;while(!x);该程序_。A 输出值不正确 B 陷入死循环 C 运行时无结果输出 D 编译时出错 2016-6-27C与C+程序设计教程-第二章50 19.for循环有如下程序:#includeint main()int sum;for(int i=0;i6;i+=3)sum=i;for(int j=i;j6;j+)sum+=j; coutsum= 0; n-) 循环的次数为( )a.9b.10c.11d.12 2016-6-27C与C+程序设计教程-第二章52 执行下列语句段后,输出字符“*”的个数是for(int i=50;i1;-i)cout*;A 48B 49C 50D 51答案 B 2016-6-27C与C+程序设计教程-第二章53 break和continuecontinue只结束本次循环break结束整个循环 2016-6-27C与C+程序设计教程-第二章54 有以下程序main()int i,j,x=0;for(i=0;i2;i+) x+;for(j=0;j=3;j+) if(j%2) continue;x+;x+;printf(x=%d n,x); x=12程序执行后的输出结果是_。A x=4 B x=8 C x=6 D x=12答案 B2016-6-27C与C+程序设计教程-第二章55 有以下程序:main() int a=1,b;for(b=1;b=8)break; if(a%2=1)a+=5;continue; a-=3;printf(%dn,b);程序运行后的输出结果是_。A 3 B 4 C 5 D 6 答案 B 2016-6-27C与C+程序设计教程-第二章56 【单选题】下面程序段的输出的结果是_。for(int n=3;n6;n+) (n%2)?cout“*”:cout“#”A#*# B *#* C * D # 答案 B 2016-6-27C与C+程序设计教程-第二章57 20.数组初始化要定义一个具有5个元素的一维数组vect,并使其各元素的初值依次是30,50,-88,0和0,则下列定义语句中错误的是A int vect =30,50,-88;B int veer =30,50,-88,0,0;C int vect5=30,50,-88;D int vect5=30,50,-88,0,0;答案 A 2016-6-27C与C+程序设计教程-第二章58 2. 针对数组定义int data10;,下列表述中错误的是A 用*data可访问到数组的首元素B 用data9可访问到数组的末元素C 用data10访问数组元素会超出数组边界D data共有10个元素,其首元素是data1答案 D 2016-6-27C与C+程序设计教程-第二章59 5. 以下数组定义中错误的是_。A int x3=0;B int x23=1,2,3,4,5,6; C int x3=1,2,3,4,5,6;D int x23=1,2,3,4,5,6;答案 B 2016-6-27C与C+程序设计教程-第二章60 6. 有以下程序main() int i,t3=9,8,7,6,5,4,3,2,1;for(i=0;i3;i+) printf(%d ,t2-ii);程序执行后的输出结果是_。 A 7 5 3B 3 5 7C 3 6 9D 7 5 1答案 B 2016-6-27C与C+程序设计教程-第二章61 以下能正确定义一维数组的选项是_。A int a5=0,1,2,3,4,5; B char a=0,1,2,3,4,5; C char a=A,B,C; D int a5=0123; 答案 B 2016-6-27C与C+程序设计教程-第二章62 21.字符串存储在字符数组中,一个一维字符数组存放一个字符串,数组名存放的是字符串的首地址,字符型的指针变量指向一个字符串或字符数组。当把一个字符串赋给一个字符指针变量时,并不是把字符串付给指针变量,而是把字符串的首地址付给指针变量。下列语句中,正确的是( )。A char*myString=H ello-World!;B char myString=H ello-World!;C char myString11=H ello-World!;D char myString12=H ello-World!;答案 A 2016-6-27C与C+程序设计教程-第二章63 在定义字符数组时,通常要在数组末尾留出一个数组元素存放字符0 ,当略去数组长度时,必须在数组末尾加上0当用字符串常量给字符数组赋值时,可以省去数组长度,编译器能确定最后一个字符的位置并在其后加上0以下能正确定义字符串的语句是_。A char str=064;B char str=x43; C char str= ;D char str=0; 2016-6-27C与C+程序设计教程-第二章64 有以下程序:main() char p=a,b,c,q=abc;printf(%d %dn,sizeof(p),sizeof(q);程序运行后的输出结果是_。A 4 4 B 3 3 C 3 4 D 4 3 2016-6-27C与C+程序设计教程-第二章65 字符数组有两种定义方式:一种是逐个字符赋给数组中各元素,如本题中“p=a,b,c”的定义, 由于定义时没有给出数组大小,此时字符个数就是数组的长度;另一种是将字符串作为字符数组来处理, 如题中“q=abc”的定义形式。C 语言规定,字符串以0作为结束符,并占用一个存储空间。sizeof()函 数是计算变量或数组所分配到的内存空间的大小,故本题的输出结果是 3 4。 2016-6-27C与C+程序设计教程-第二章66 有以下程序:#include main() char p=a,b,c,q10=a,b,c;printf(%d %dn,strlen(p),strlen(q);以下叙述中正确的是_。A 在给 p 和 q 数组置初值时,系统会自动添加字符串结束符,故输出的长度都为 3B 由于 p 数组中没有字符串结束符,长度不能确定;但 q 数组中字符长度为 3C 由于 q 数组中没有字符串结束符,长度不能确定;但 p 数组中字符长度为 3 D 由于 p 和 q 数组中没有字符串结束符,故长度都不能确定2016-6-27C与C+程序设计教程-第二章67 Strlen 是计算以“0”结束的字符串的长度的函数,函数的值为字符串中实际长度,不包括“0”。 题中“q10=a,b,c”虽然给出了数组大小,即数组实际分配的存储空间,但此字符串只占用前 3 个存 储单元,其余存储单元系统自动加上“0”,故数组 q 的长度为 3;由于 p 数组中没有字符串结束符,故字 符串的长度不能确定。 2016-6-27C与C+程序设计教程-第二章68 .有以下程序:main() char a7=a00a00; int i,j; i=sizeof(a); j=strlen(a); printf(%d %dn,i,j);程序运行后的输出结果是_。A 2 2B 7 6C 7 2D 6 2 2016-6-27C与C+程序设计教程-第二章69 以下语句或语句组中,能正确进行字符串赋值的是_。 A char *sp;*sp=right!;B char s10;s=right!; C char s10;*s=right!;D char *sp=right!;数组名是地址常量,不能通过赋值运算把一个字符串赋值给它,指针是个变量,可以重新赋值编译系统按定义的大小给数组分配内存空间,却只给指针比那两一个用以存放字符变量地址的内存单元。 2016-6-27C与C+程序设计教程-第二章70 指针的初始化和应用若有定义 int x=0,*p=,则语句 printf(%dn,*p);的输出结果是_。A 随机值 B 0 C x 的地址 D p 的地址110【单选题】已知p是指针变量,则不能初始化指针的值是_。 A 1 B 0 C NULL D 地址答案:B答案:A 2016-6-27C与C+程序设计教程-第二章71 【单选题】可以赋给指针变量的唯一整数是_。A 3 B 0 C 1 D 2有如下说明 int a10=1,2,3,4,5,6,7,8,9,10,*p=a; 则数值为9的表达式是A *p+9 B *(p+8) C *p+=9 D p+8答案:B答案:B 2016-6-27C与C+程序设计教程-第二章72 有以下程序:main() int a10=1,2,3,4,5,6,7,8,9,10,*p=printf(%dn,*p+*q);程序运行后的输出结果是_。A 16 B 10 C 8 D 6答案:B 2016-6-27C与C+程序设计教程-第二章73 数组指针指针数组:每一个元素相当于一个指针变量定义形式:类型标识符 *指针数组名常量表达式如:int *p5; 下列选项中,表示数组指针pt的是_。A int (*pt)5 B int *pt5 C (int*)pt5 D int *pt答案:A2016-6-27C与C+程序设计教程-第二章74 若有语句 char *line5;,以下叙述中正确的是_。A 定义 line 是一个数组,每个数组元素是一个基类型为 char 的指针变量 B 定义 line 是一个指针变量,该变量可以指向一个长度为 5 的字符型数组 C 定义 line 是一个指针数组,语句中的*号称为间址运算符D 定义 line 是一个指向字符型函数的指针 答案:A 2016-6-27C与C+程序设计教程-第二章75 已知数组arr的定义如下:int arr5 = 1,2,3,4,5; 下列语句中输出结果不是2的是A cout *arr+1 endl; B cout *(arr+1)endl;C cout arr1 endl; D cout *arr endl;答案:D 2016-6-27C与C+程序设计教程-第二章76 引用变量的别名,定义格式:类型:int y)若有下面的函数调用: fun(a+b,3,max(n-1,b) 则fun的实参个数是A 3 B 4 C 5 D 6 答案:C答案:A 2016-6-27C与C+程序设计教程-第二章78 下列关于C+函数的叙述中,正确的是A 每个函数至少要具有一个参数 B 每个函数都必须返回一个值C 函数在被调用之前必须先声明 D 函数不能自己调用自己142关于函数中的,下列表述中错误的是A 中有可能包含关键字int B 中有可能包含自定义标识符C 中有可能包含字符* D 中可能包含答案:C答案:D 2016-6-27C与C+程序设计教程-第二章79 143. 下列关于函数的描述中,错误的是A 函数可以没有返回值 B 函数可以没有参数C 函数可以是一个类的成员 D 函数不能被定义为模板参数默认:下列函数原型声明中错误的是【 】A void Fun(int x0,int y0); B void Fun(int x,int y);C void Fun(int x,int y0); D void Fun(int x0,int y);答案:D答案:D 2016-6-27C与C+程序设计教程-第二章80 下面程序的输出结果是_.#includeint fn(int x, int y) int z; z=x+y; return z; void main() int a=6,b=7,c=8,n; n=fn(a+b,a-,b+),c);coutnendl;A.25 B.14 C.16 D.15 答案:C 2016-6-27C与C+程序设计教程-第二章81 有如下程序: #include void fun(int x=y;y=t; int main() int a2=23,42; fun(a1,a0); couta0,a1endl; return 0; 执行后的输出结果是A 42,42 B 23,23 C 23,42 D 42,23 答案:B 2016-6-27C与C+程序设计教程-第二章82 已知函数f的原形是void f(int * a,long ,变量v1、v2的定义是:int v1;long v2;下列调用语句中正确的是A f(v1,main()char *s=one,a5=0,(*f1)()=fun, ch;.以下选项中对函数 fun 的正确调用语句是_。A (*f1)(); B *f1(*s); C fun( D ch=*f1(s); 答案:A 2016-6-27C与C+程序设计教程-第二章85 下列函数原型声明中错误的是【 】A void Fun(int x0,int y0); B void Fun(int x,int y);C void Fun(int x,int y0); D void Fun(int x0,int y);答案:D 2016-6-27C与C+程序设计教程-第二章86 在下列原型所示的C+函数中,按“传值”方式传递参数的是( )。A void f1(int a); B void f2(int *a);C void f3(const int *a);D void f4(int int j=l; int main( ) int i=8,j=i; coutijendl; 运行时输出结果是A 44 B 41 C 88 D 81 答案:C 2016-6-27C与C+程序设计教程-第二章88 静态变量 for(i=0;iy B pt-x C +pt-x D (pt+)-x 答案:C 2016-6-27C与C+程序设计教程-第二章94 以下对结构体类型变量 td 的定义中,错误的是_。A typedef struct aa int n; float m; AA; AA td;B struct aaint n;float m;td; C Structint n;Float m;aa;struct aa td;D structint n;float m;td;答案:C 2016-6-27C与C+程序设计教程-第二章95 对于以下的变量定义,表达式( )不符合C语言语法。 struct node int len ; char *pk; x= 2,right, *p=(A)p-pk (B) (*p).pk (C) *p.pk (D) x.pk 2016-6-27C与C+程序设计教程-第二章96
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 考试试卷


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!