C语言程序设计试题及答案解析.doc_第1页
C语言程序设计试题及答案解析.doc_第2页
C语言程序设计试题及答案解析.doc_第3页
C语言程序设计试题及答案解析.doc_第4页
C语言程序设计试题及答案解析.doc_第5页
已阅读5页,还剩89页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C C 语言程序设计试题语言程序设计试题 第第 1 1、2 2、3 3 章章 概述、类型、表达式概述、类型、表达式 一、选择题一、选择题 1、一个 C 程序由若干个 C 函数组成,各个函数在文件中的位置顺序为:( ) A、任意 B、第一个函数必须是主函数,其他函数任意 C、必须完全按照执行的顺序排列 D、其他函数可以任意,主函数必须在最后 2、下列四个叙述中,正确的是:( ) A、C 程序中的所有字母都必须小写 B、C 程序中的关键字必须小写,其他标示符不区分大小写 C、C 程序中的所有字母都不区分大小写 D、C 语言中的所有关键字必须小写 3、下列四个叙述中,错误的是:( ) A、一个 C 源程序必须有且只能有一个主函数 B、一个 C 源程序可以有多个函数 C、在 C 源程序中注释说明必须位于语句之后 D、C 源程序的基本结构是函数 4、下面不是 C 语言合法标识符的是:( ) A、abc B、5n C、_4m D、x3 5、以下叙述不正确的是:( ) A. 分号是 C 语句的必要组成部分 B. C 程序的注释可以写在语句的后面 C. 函数是 C 程序的基本单位 D. 主函数的名字不一定非用 main 来表示 6、 C 语言中允许的基本数据类型包括:( ) A. 整型、实型、逻辑型 B. 整型、实型、字符型 C. 整型、字符型、逻辑型 D. 整型、实型、逻辑型、字符型 7、 C 语言中能用八进制表示的数据类型为:( ) A、字符型、整型 B、整形、实型 C、字符型、实型、双精度型 D、字符型、整型、实型、双精度型 8、 下列属于 C 语言合法的字符常数是:( ) A、 97 B、 ”A” C、 t D、 ”0” 9、 在 C 语言(VC 环境)中,5 种基本数据类型的存储空间长度的排列顺序为:( ) A、char=10 or a=0 C、a=10 | a=10 “后,t 的值为 0 29. ( )若 a 和 b 类型相同,在计算了赋值表达式 a=b 后 b 中的值将放入 a 中,而 b 中的值不 变 30. ( )在 C 程序中,%是只能用于整数运算的运算符 31. ( )在 C 语言中,逻辑“真”等价于不等于 0 的数 32. ( )C 语言中字符型、整型、实型都能用八进制表示 33. ( )在 VC 语言中,5 种基本数据类型的存储空间长度的排列顺序为:char main() int i=010,j=10; printf(“%d,%dn“,+i,j-); A) 11,10 B) 9,10 C) 010,9 D) 10,9 13、在 C 语言中,short 类型数据的范围是-3276832767,下面程序段的输出结果是:( ) short i =65536; printf(“%dn“,i); A) 65536 B) 0 C) 1 D)超出取值范围,无输出结果 14、已知字符 A 的 ASCII 码为十进制的 65,下面程序的输出是:( ) main() char ch1,ch2; ch1=A+5-3; ch2=A+6-3; printf(“%d,%cn“,ch1,ch2); A) 67,D B) B,C C) C,D D) 不确定的值 15、若有定义和语句: char s; s=“abcd“; printf(“%dn“,s); 则结果是:( ) A) 输出 97 B) 输出 a C) 输出 adcb D) 编译不能通过 16、若有定义:int x,y; char a,b,c; 并有以下输入数据(此处代表换行,代表空格) : 12 ABC 则能给 x 赋整数 1,给 y 赋数 2,给 a 赋字符 A,给 b 赋字符 B,给 c 赋字符 C 的正确程 序段是:( ) A) scanf(“x=%d y=%d“, a=getchar(); c=getchar(); B) scanf(“%d%d“, a=getchar(); b=getchar(); c=getchar(); C) scanf(“%d%d%c%c%c“, D) scanf(“%d%d%c%c%c%c%c%c“, 17、两次运行下面的程序,如果从键盘上分别输入 6 和 4,则输出结果是:( ) main() int x; scanf(“%d“, if (x+5) printf(“%d“,x) else printf(“%dn“,x-); A) 7 和 5 B) 6 和 3 C) 7 和 4 D) 6 和 4 18、若执行下面的程序从键盘输入 3 和 4,则输出是:( ) main() int a,b,s; scanf(“%d%d“, s=a; if (a765.12 B) i=100,f=765.12 C) 100765.12 D) x=100,y=765.12 20、以下程序的输出结果是:( ) #include main() int n; printf(“%dn“,n); A) -1 B) 0 C) 1 D) 不确定 二、判断题二、判断题 1( )在 C 语言中,实型数据在内存都中占 4 个字节。 2( )在 C 语言中,参加算术(+,-,*,/,%)运算的数据可以是任何类型的数据。 3( )若有定义和语句:int a;char c;scanf(“%d,%c“,当通过键盘输入: 10,A之后,则变量 a 中存放的是 10,变量 c 中存放的是A 。 4( )C 语言中,变量名只能是小写字母表示,符号常量名可用大写表示 5( )在 C 语言中,变量可以不要定义,直接使用 6( )一个 C 语言程序总是从主函数开始执行的 7( )注释语句必须用/*和*/括起来,且只能位于某一语句的后面 8( ) “a”和a均是占用 1 个字节的内存空间的数据 三、多选题三、多选题 1. 以下所列语句中,不合法的语句是:( ) A、a=1,b=2 B、+a; C、a=a+1=5; D、y= (int) a; E、a=b=c=10; 2. 下列描述正确的是:( ) A. putchar 函数的作用是向屏幕输出一个字符 B. putchar 函数能在屏幕上输出控制字符 C. putchar(c)函数中,c 只能是字符型变量,不能是整型变量 D. putchar 函数能在屏幕上输出转义字符 Eputchar 函数的使用需要包含“stdio.h”头文件 3. 下列描述正确的是:( ) A. getchar 函数只能接收一个字符 B. getchar 函数得到的字符可以赋给一个字符变量 C. getchar 函数得到的字符可以赋给一个整型变量 D. getchar 函数得到的字符可以作为表达式的一部分 Egetchar 函数是编程者自定义的函数 4. printf 函数中,关于格式字符描述正确的是:( ) A格式字符 o 表示以八进制无符号形式输出整数 B格式字符 u 表示以无符号十进制形式输出整数 C格式字符 x 表示以无符号十六进制形式输出整数 D格式字符 f 表示以实数形式输出单、双精度数 E格式字符 e 表示以浮点数形式输出单、双精度数 5. 假设 int x,y,z;若从键盘给 x、y、z 输入数据,下列不正确的输入语句是: ( ) Ainput x、y、z; Bscanf(“%d%d%d“, Bgetchar(ch); Cch = getchar(); Dscanf(“%c”, Eprintf(“%c”,ch=B); 9. 下面属于转义符的有:( ) A t B n C %d D 376 E x20 10.若 a 为整型变量,则下列表达式的值为 0 的是( ), Aa % a Ba != a C3/4 D3 for ( i=0; ibc) printf(“%dn“, d); else if ( (c-1 = d) =1) printf(“%dn“, d+1); else printf(“%dn“, d+2); 执行后输出结果是:( ) A)2 B)3 C)4 D)编译时有错,无结果 4. 有以下程序 main() int i=0,s=0; do if (i%2) i+; continue; i+; s += i; while( ib?(ac?a:c):(b); A) 5 B) 4 C) 6 D) 不确定 6. 以下程序中,while 循环的循环次数是:( ) main() int i=0; while(i=10) break; if (b%3=1) b+=3; continue; printf(“%dn“,a); A) 101 B) 6 C) 5 D) 4 13.若执行以下程序时从键盘上输入 9,则输出结果是:( ) main() int n; scanf (“%d“, if(n+= a)|(c=c) D) (c= a) char ch ; while (ch=getchar()!=#) switch (ch ) case a: case h: default:v1+; case 0:v2+; printf(“%d,%dn” ,v1,v2); A) 2,0 B)5,0 C) 5,5 D)2,5 24.设有如下定义: int a=1,b=2,c=3,d=4,m=2,n=2; 则执行表达式:(m=ab) for (i=0;i3;j-) if(j%3) j-; -j;-j; printf(“%d ” ,j); A)6 3 B)7 4 C)6 2 D)7 3 29.有以下程序 main() int x, i; for(i=1;i12 ? 15 :65 ? 8 :9 )后,变量 k 的值为:( ) A. 9 B. 8 C. 15 D. 1 32.以下程序运行后,如果从键盘上输人 5,则输出结果是:( ) main( ) int x; scanf(“%d“, printf(“%3d“,n); A) 10 9 8 B) 9 8 7 C) 10 9 8 7 D) 9 8 7 6 38.以下程序段的输出结果是:( ) int x=3; do printf(“%3d“,x-=2; while (!(-x); A) 1 B) 3 0 C) 1 -2 D) 死循环 39.执行下面的程序后,a 的值为:( ) main() int a,b; for (a=1,b=1;a=20) break; if (b%3=1) b+=3; continue; b-=5; A) 7 B) 8 C) 9 D) 10 40.读程序: main() int num=0; while (numb) m =a; Bif (a); Cif (a=b)=0) m=a; Dif (a=b;)=0) m=a; 3、 如果不加花括号表示 else 与 if 的配对关系,则 else 与 if 的匹配方法,不正确的是 Aelse 与它上面最远的 if 配对 Belse 与它上面最近的 if 配对 Celse 与离它最近的 if 配对 D.else 与它上面最近的且没有和其他 else 配对的 if 配对 4、 关于条件运算符的叙述正确的是 A条件运算符的优先级别比关系运算符和算术运算符都低 B条件运算符是 C 语言中惟一的一个三目运算符 C条件运算符的结合方向是“自右至左” D条件运算符可以替代任何 if 语句的功能 5、 关于 switch 语句叙述正确的是 A语句中,case 的冒号后面允许没有语句。 Bswitch 语句中,每一个 case 的冒号后面都允许跟有多条语句。 C在与 switch 语句配套的 case 语句中所使用的表达式可以是变量或 常量 Dswitch 语句中,可以没有 default 语句。 6、 在计数循环 for(表达式 1;表达式 2;表达式 3)中,可以省略的表达式是:( ) A表达式 1 B表达式 2 C表达式 3 D三个表达式都可以 E一个都不能少 7、 下列语句段是死循环的是( ) An=100; Bs=33; while(n) n=n%100+1; while(s+%2+s%2) s+; Cfor(;); Dfor(i=1;) if(-i)break; Ex=0; do x+; while(x=0); 第第 7 7 章章 数组数组 一、选择题一、选择题 1、若有以下说明语句: int a12=1,2,3,4,5,6,7,8,9,10,11,12; char c=a,d,g; 则数值为 4 的表达式是:( ) 。 A、ag-c B、a4 C、ad-c D、ad-c 2、假设 int 型变量占两个字节的存储单元,若有定义: int x10=0,2,4; 则数组 x 在内存中所占字节数为:( ) A、3 B、6 C、10 D、20 3、下列合法的数组定义是:( ) A、int a=”string”; B、int a5=0,1,2,3,4,5; C、char a=”string”; D、char a=0,1,2,3,4,5; 4、若给出以下定义: char x=”abcdefg”; char y=a,b,c,d,e,f,g; 则正确的叙述为:( ) A、数组 x 和数组 y 等价 B、数组 x 和数组 y 的长度相同 C、数组 x 的长度大于数组 y 的长度 D、数组 y 的长度大于数组 x 的长度 5、下面程序段的输出结果是:( ) int j; int x33=1,2,3,4,5,6,7,8,9; for (j=0;j2) i=3-j; s+=bij; return s; main( ) int a44=1,2,3,4,0,2,4,5,3,6,9,12,3,2,1,0; printf(“%dn“,f(a); 执行后的输出结果是:( ) A、12 B、11 C、18 D、16 16、有以下程序 void sort(int a,int n) in t i,j,t; for(i=0;i=0,则下面不正确的叙述是:( ) 。 A数组 a 的每个元素都可得到初值 0 B二维数组 a 的第一维大小为 1 C因为二维数组 a 中初值的个数不能被第二维大小的值整除,则第一维的大小等于 所得商数再加 1,故数组 a 的行数为 1 D只有元素 a00和 a01可得到初值 0,其余元素均得不到初值 45. 下列语句中,不正确的是:( ) 。 Achar str5=“hello“; Bchar str=h,e,l,l,o,0; Cchar str5=“hi“; Dchar str100=“; 46. 下面错误的初始化语句是:( ) 。 Achar str=“hello“; Bchar str100=“hello“; Cchar str=h,e,l,l,o; Dchar str=hello; 47. 定义了一维 int 型数组 a10后,下面错误的引用是:( ) 。 Aa0=1; Ba10=2; Ca0=5*2; Da1=a2*a0; 48. 下面的二维数组初始化语句中,错误的是:( ) 。 Afloat b22=0.1,0.2,0.3,0.4; Bint a2=1,2,3,4; Cint a2= 1,2,3,4; Dfloat a22=0; 49. 引用数组元素时,数组下标可以是:( ) 。 A整型常量B整型变量C整型表达式D以上均可 50. 定义了 int 型二维数组 a67后,数组元素 a34前的数组元素个数为:( ) 。 A24B25C18D17 51. strlen(“A0B0C“)的结果为:( ) 。 A0B1C2D3 52. 下面程序的运行结果是:( ) 。 main() int a3=1,2,3,4,5,6; printf(“%d“,a11); A3B4C5D6 53. 下面程序的运行结果是:( ) 。 main() char s120=“Good!“; char s215=“AB“; printf(“%d“,strlen(strcpy(s1,s2); A20B15C5D2 54. 下面程序的运行结果是:( ) 。 main() char s120=“ABCDEF“; int i=0; while(s1i+!=0) printf(“%c“, s1i+); AABCDEF BBDF CABCDEDBCDE 55. 下面程序的运行结果是:( ) 。 main() int n2=0,i,j,k=2; for(i=0;i=0 else break; printf(“%dn“,n); A298h01B29801C01D298 二、判断题:二、判断题: 1. ( )在程序中可以对数值数组中的数据进行整体使用。 2. ( )如果 strcmp(s1,s2)的返回值为一个负数,则表明字符串 s1 一定小于字符串 s2。 3. ( )字符数组的输出不能一次性的整体输出。 4. ( )用 scanf 函数输入的字符串不可以带空格。 5. ( )用 gets 函数输入的字符串可以带空格。 6. ( )实现两个字符串的复制可以使用 str1=str2;语句。 7. ( )使用 strcpy 函数可以实现两个字符串的复制。 8. ( )使用 strcat 函数可以实现两个字符串的连接。 9. ( )使用 strlen 函数可以求出一个字符串的实际长度(包含0字符) 。 10. ( )如有定义 char a=”student”;则数组 a 的长度为 7。 11. ( )如有定义 char a20;则可以通过 a=“I am a boy”;给 a 赋值。 12. ( )如有定义 int a23;则数组 a 的最后一个元素为 a12。 13. ( )如有定义 int a340; 则数组 a 的所有元素初值均为 0。 14. ( )C 语言中数组名实质上是数组的首地址,是一个变量地址,可对其进行赋值。 15. ( )构成数组的各个元素可以有不同的数据类型。 16. ( )若有说明:int a10;,则可以 a10引用数组 a 的第 10 个元素。 17. ( )引用数组元素时,其数组下标的数据类型允许的是:整型常量或整型表达式。 18. ( )若有 int a10=6,7,8,9,10;,则是将 5 个初值依次赋给 a0至 a4。 19. ( )一个一维数组,它的每一个元素也是类型相同的一维数组时,便构成二维数组。 20. ( )在 C 语言中,允许用字符串来直接初始化字符数组。 21. ( )字符数组的输出不能一次性的整体输出。 22. ( )使用 strcat 函数可以实现两个字符串的复制。 三、多选题三、多选题 1、 以下关于数组的描述中,正确的有:( ) 。 在定义数组时,有时可以将该数组的维数省略 数组名实质上是数组的首地址,是一个变量地址,可对其进行赋值 构成数组的各个元素可以有不同的数据类型 有定义:int a3; 则定义了 a0、a1、a2三个数组元素 在程序中可以对数值数组中的数据进行整体使用 2、 以下关于数组的描述中,错误的有:( ) 。 引用数组元素时,其数组下标的数据类型允许的是:整型常量或整型表达式 可以通过数组名来整体引用一个数组 在程序中可以对数值数组中的数据进行整体使用 若有说明:int a10;,则可以 a10引用数组 a 的第 9 个元素 若有说明:int a10;,则可以 a10引用数组 a 的第 10 个元素 3、 以下关于数组的描述中,错误的有:( ) 。 可以通过如下语句来完成对一个数组的输入:int a10; scanf(“%d“,a); 可以通过如下语句来完成对一个数组的输入:int a10; scanf(“%d“, 若有 int a10=6,7,8,9,10;,则是将 5 个初值依次赋给 a0至 a4 数组元素可以像普通变量一样使用 int a9; 则数组 a 的下标范围是 1-9 4、 以下关于数组的描述中,正确的有:( ) 。 数组名实质上是数组的首地址,是一个常量,不能对其赋值 在定义数组时,有时可以将该数组的维数省略 一个一维数组,它的每一个元素也是类型相同的一维数组时,便构成二维数组 如有定义 int a340; 则数组 a 的所有元素初值均为 0 可以通过数组名来整体引用一个数组 5、 以下关于数组的描述中,错误的有:( ) 。 如有定义 int a23;则数组 a 的最后一个元素为 a12 一个一维数组,它的每一个元素也是类型相同的一维数组时,便构成二维数组 若有说明:static int a33; 那么数组 a 中每个元素初值为 0 在定义二维数组时,可以将该数组的两个维数全部省略 如有定义 char a20; 则可以通过 a=“I am a boy“; 给 a 赋值 6、 若有说明:int a4=0,0;,则下面正确的叙述有:( ) 。 数组 a 的每个元素都可得到初值 0 二维数组 a 的第一维大小为 1 因为二维数组 a 中初值的个数不能被第二维大小的值整除,则第一维的大小等于所 得商数再加 1,故数组 a 的行数为 1 只有元素 a00和 a01可得到初值 0,其余元素均得不到初值 只有元素 a11和 a12可得到初值 0,其余元素均得不到初值 7、 以下关于数组的描述中,正确的有:( ) 。 若有定义 char a=“hello“;,则数组 a 的长度为 6 有定义 char a3; 则定义了 a1、a2、a3三个数组元素 构成字符数组的各个元素必须是字符类型的数据 可以通过数组名来整体引用一个数组 设有数组定义 char array =“China“; 则数组 array 所占的空间为 5 个字节 8、 以下关于数组的描述中,正确的有:( ) 。 在 C 语言中,允许用字符串来直接初始化字符数组 若有定义 char a20;,则可以通过 a=“I am a boy“;给 a 赋值 若有 char a10=1,2,3;,则是将 3 个初值依次赋给 a1至 a3 构成字符数组的各个元素必须是字符类型的数据 数组名实质上是数组的首地址,是一个常量,不能对其赋值 9、 以下关于数组的描述中,错误的有:( ) 。 字符数组的输出不能一次性的整体输出 若有 char a10=1,2,3;,则是将 3 个初值依次赋给 a0至 a2 构成字符数组的各个元素可以是不同数据类型的元素 构成字符数组的各个元素必须是字符类型的数据 若有定义 char b=“hello“;,则数组 b 的长度为 6 10、下列语句中,正确的有:( ) 。 char str5=“hello“; char str=h,e,l,l,o,0; char str5=“hi“; char str100=“; char str3=“this“; 11、函数调用 strcat(strcpy(str1,str2),str3)的功能,以下说法错误的有:( ) 。 将串 str1 复制到串 str2 中后在连接到串 str3 之后 将串 str1 连接到串 str2 之后再复制到串 str3 之后 将串 str2 复制到串 str1 中后再将串 str3 连接到串 str1 之后 将串 str2 连接到串 str1 中后再将串 str1 复制到串 str3 中 将串 str2 连接到串 str1 中后再将串 str3 复制到串 str1 中 12、以下关于数组的描述中,正确的有:( ) 。 在定义数组时,有时可以将该数组的维数省略 数组元素可以像普通变量一样使用 若有 int a10=6,7,8,9,10;,则是将 5 个初值依次赋给 a0至 a4 如有定义 char a=“student“; 则数组 a 的长度为 7 若有定义 double x35; 则 x 数组中行下标的下限为 0,列小标的上 限为 4 13、定义了一维 int 型数组 a10后,下面正确的引用有:( ) 。 a0=1; a10=2; a0=5*2; a1=a2*a0; a2=a1+a0; 第第 8 8 章章 函函 数数 一、选择题一、选择题 1. 若调用一个函数,且此函数中没有 RERUrn 语句,则关于该函数正确的说法是:( ) A. 没有返回值 B. 返回若干个系统默认值 C. 能返回一个用户所希望的函数值 D. 返回一个不确定的值 2. 在 c 语言中以下不正确的说法是:( ) A. 实参可以是常量、变量、或表达式 B. 形参可以是常量、变量或表达式 C. 实参可以为任意类型 D. 形参应与其对应的实参类型一致 3. 以下程序有语法性错误,有关错误原因的正确说法是:( ) main() int G=5,k; void prt_char(); k=prt_char(G); A. 语句 void prt_char();有错,它是函数调用语句,不能用 void 说明 B. 变量名不能使用大写字母 C. 函数说明和函数调用语句之间有矛盾 D. 函数名不能使用下划线 4. 以下正确的说法是:( ) A. 函数的定义可以嵌套,但函数的调用不可以嵌套 B. 函数的定义不可以嵌套,但函数的调用可嵌套 C. 函数的定义和调用均不可以嵌套 D. 函数的定义和调用均可以嵌套 5. 若使用一个数组名作函数实参,则以下正确的说法是:( ) A. 必须在主调函数中说明此数组的大小 B. 实参数组类型与形参数组类型可以不匹配 C. 在被调用函数中,不需要考虑形参数组的大小 D. 实参数组名与形参数组名必须一致 6. 在一个函数内部定义的变量是:( ) A、 简单变量 B、 局部变量 C、 全局变量 D、 标准变量 7. 若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是:( ) A)函数调用可以作为独立的语句存在 B)函数调用可以作为一个函数的实参 C)函数调用可以出现在表达式中 D)函数调用可以作为一个函数的形参 8. 已定义以下函数 fun(int*p) return *p; 该函数的返回值是:( ) A)不确定的值 B)形参 p 中存放的值 C)形参 p 所指存储单元中的值 D)形参 p 的地址值 9. 以下所列的各函数首部中,正确的是:( ) A、 void play(var :Integer,var b:Integer) B、 void play(int a,b) C、 void play(int a,int b) D、 Sub play(a as integer,b as integer) 10. 当调用函数时,实参是一个数组名,则向函数传送的是:( ) A、 数组的长度 B、 数组的首地址 C、 数组每一个元素的地址 D、 数组每个元素中的值 11. 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是:( ) A、 地址传递 B、 单向值传递 C、 由实参传给形参,再由形参传回实参 D、 传递方式由用户指定 12. 以下函数值的类型是:( ) fun ( float x ) float y; y= 3*x-4; return y; A、 int B、 不确定 C、 void D、 float 13. 下列函数的功能是:( ) int fun1(chat* x) char *y=x; while(*y+); return(y-x-1); A)求字符串的长度 B、比较两个字符串的大小 C、将字符串 X 复制到字符串 Y D、将字符串 X 连接到字符串 Y 后面 14. 下面程序的输出结果是:( ) void prty(int * x) printf(“%dn“,+*x); main() int a=25; prtv( A、23 B、24 C、25 D、26 15. 以下对 C 语言函数的有关描述中,正确的是:( ) A、只能把实参的值传送给形参,形参的值不能传送给实参 B、C 函数既可以嵌套定义又可以递归调用 C、函数必须有返回值,否则不能使用函数 D、C 程序中所有函数都可以嵌套调用 16. 以下叙述中不正确的是:( ) A)在 C 中,函数体中定义的动态变量可以赋初值,每调用一次,赋一次初值. B、 在 C 中,函数体中定义的静态变量可以赋初值,每调用一次,赋一次初值. C、 在 C 中,局部变量的隐含类别是自动存储类别. D)在 C 中,在调用函数时,实在参数和对应形参在类型上只需赋值兼容. 17. 以下叙述中不正确的是:( ) A)在不同的函数中可以使用相同名字的变量 B)函数中的形式参数是局部变量 C)在一个函数内定义的变量只在本函数范围内有效 D)在一个函数内的复合语句中定义的变量在本函数范围内有效 18. 有以下程序 void fun (int a,int b,int c) a=456; b=567; c=678; main() int x=10, y=20,z=30; fun (x,y,z); printf(“%d,/%d,%dn“,x,y,z); 输出结果是:( ) A、30,20,10 B、10,20,30 C、456,567,678 D、678,567,456 19. 有以下程序 ( ) int fun(int x,int y,int *cp,int *dp) *cp=x+y; *dp=x-y; main() int a, b, c, d; a=30; b=50; fun(a,b, printf(“%d,%dn“, c, d); 输出结果是:( ) A、50,30 B、30,J50 C、80,-20 D、80,20 20. 下列程序执行后的输出结果是 ( ) 。 void func(int *a,int b) b0=*a+6; main() int a,b5; a=0; b0=3; func( printf(“%d n”,b0); A、 6 B、 7 C、 8 D、 9 21. 一个完整的可运行的 C 源程序中, ( ) 。 A、 可以有一个或多个函数 B、 必须有且仅有一个主函数 C、 可以没有主函数 D、 必须有主函数和其他函数 22. 下述函数定义形式正确的是( ) 。 A、 int f(int x; int y)B、 int f(int x,y) C、 int f(int x, int y)D、 int f(x,y: int) 23. 关于函数参数,说法正确的是( ) 。 A、 实参与其对应的形参各自占用独立的内存单元 B、 实参与其对应的形参共同占用一个内存单元 C、 只有当实参和形参同名时才占用同一个内存单元 D、 形参是虚拟的,不占用内存单元 24. 一个函数的返回值由( )确定。 A、 return 语句中的表达式B、 调用函数的类型 C、 系统默认的类型D、 被调用函数的类型 25. 以下叙述中正确的是( ) 。 A、 C 语言程序总是从第一个定义的函数开始执行 B、 在 C 语言程序中,要调用的函数必须在 main()函数中定义 C、 C 语言程序总是从 main()函数开始执行 D、 C 语言程序中的 main()函数必须放在程序的开始部分 26. 以下函数 fff(float x) printf(“%dn”,x*x); 的类型是( ) 。 A、 与参数 x 的类型相同 B、 void 类型 C、 int 类型 D、 无法确定 27. 以下对 C 语言函数的描述中,正确的是( ) 。 A、 C 程序由一个或一个以上的函数组成 B、 C 函数既可以嵌套定义又可以递归调用 C、 函数必须有返回值,否则不能使用函数 D、 C 程序中调用关系的所有函数必须放在同一个程序文件中 28. 以下叙述中不正确的是( ) 。 A、 在 C 语言中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参 B、 在 C 的函数中,最好使用全局变量 C、 在 C 语言中,形式参数只是局限于所在函数 D、 在 C 语言中,函数名的存储类别为外部 29. 在一个源文件中定义的外部变量的作用域为( ) 。 A、 本文件的全部范围 B、 本程序的全部范围 C、 本函数的全部范围 D、 定义该变量的位置开始至本文件结束 30. 有以下函数调用语句: func(exp1,exp2),(exp3,exp4,exp5); 其中含有的实参个数和是( ) 。 A、 1B、 2C、 4D、 5 31. C 语言中形参的默认存储类别是( ) 。 A、 自动(auto)B、 静态(static) C、 寄存器(register)D、 外部(extern) 32. 以下正确的函数形式是( ) 。 A、 double fun(int x,int y) z=x+y; return z; B、 fun(int x,y) int z; return z; C、 fun(x,y) int x,y; double z; z=x+y; return z; D、 double fun(int x,int y) double z; z=x+y; return z; 33. 在一个源程序文件中定义的全局变量的有效范围为( ) 。 A、 一个 C 程序的所有源程序文件 B、 该源程序文件的全部范围 C、 从定义处开始到该源程序文件结束 D、 函数内全部范围 34. 下列函数中,能够从键盘上获得一个字符数据的函数是( ) 。 A、 puts( ) B、 putchar( ) C、 getchar( ) D、 gets( ) 35. 以下程序的输出结果是( ) 。 fun(int a,int b,int c) c=a+b; main() int c; fun(2,3,c); printf(“%dn”,c); A、 2 B、 3 C、 5 D、 无定值 36. 分析以下程序的运行结果( ) 。 func(int a,int b) int temp=a; a=b; b=temp; main() int x,y; x=10; y=20; func(x,y); printf(“%d,%dn”,x,y); A、 10,20B、 10,10C、 20,10D、 20,20 37. 下面程序的输出是( ) 。 fun(int x) static int a=3; a+=x; return(a); main() int k=2,m=1,n; n=fun(k); n=fun(m); printf(“%d”,n); A、 3B、 4C、 6D、 9 38. 以下程序输出的结果是( ) 。 int func(int a,int b) return(a+b); main() int x=2,y=5,z=8,r; r=func(func(x,y),z); printf(“%dn”,r); A、 12B、 13C、 14D、 15 39. 以下程序的输出结果是( ) 。 int a,b void fun() a=100; b=200; main() int a=5,b =7; fun(); printf(“%d%d n”,a,b); A、 100200B、 57 C、 200100D、 75 40. 以下程序的输出结果是( ) 。 int x=3; main() int i; for(i=1;i B、 预处理命令必须位于 C 源程序的首部 C、 在 C 语言中预处理命令都以“#”开头 D、 C 语言的预处理命令只能实现宏定义和条件编译的功能 9、下列选项中不会引起二义性的宏定义是( ) 。 A、 #define POWER(x) x*xB、 #define POWER(x) (x)*(x) C、 #define POWER(x) (x*x)D、 #define POWER(x) (x)*(x) 10、以下程序的输出结果是( C ) 。 #define f(x) x*x #include main() int a=6,b=2,c; c=f(a)/f(b); printf(“%dn”,c); A、 9B、 6C、 36 D、18 11、以下程序运行后,输出结果是( ) 。 #define PT 5.5 #defme S(x) PT*x*x #include main() int a=1,b=2; printf(“%4.1fn”,S(a+b); A、 49.5B、 9.5C、22.0D、45.0 12、下列程序执行后的输出结果是( B ) 。 #define MA(x) x*(x-1) #include main() int a=1,b=2; printf(“%dn”,MA(1+a+b); A、 6B、 8C、 10D、12 13、以下程序的输出结果为( D ) 。 #include #define SQR(x) x*x main() int a,k=3; a=+SQR(k+1); printf(“%dn”,a); A、6B、l0C、 8D、 9 14、对下面程序段,正确的判断是( ) 。 #define A 3 #define B(a) (A+1)*a) . x=3*(A+B(7); A、 程序错误,不许嵌套宏定义B、 x=93 C、 x=21D、 程序错误,宏定义不许有参数. 15、以下程序的输出结果为( ) 。 #include #define F(y) 3.84+y #define PRINT(a) PR(a);putchar(n) main() int x=2; PRINT(F(3)*x); A、 8B、 9C、 10 D、 11 二、判断题二、判断题 1、 ( )预处理命令行必须以开头,且最后要用分号结尾。 2、 ( )宏命令的处理占用编译时间,而不占用运行时间。 三、多选题 1、 下面是对宏定义的描述,正确的有( ) 。 A、 宏不存在类型问题,宏名无类型,它的参数也无类型 B、 宏替换不占用运行时间 C、 宏替换时先求出实参表达式的值,然后代入形参运算求值 D、 预处理命令行必须以开头,且最后要用分号结尾 E、 宏命令的处理占用编译时间,而不占用运行时间 2、 以下叙述中不正确的是( ) 。 A、 用#include 包含的头文件的后缀不可以是“.a” B、 宏不存在类型问题,宏名无类型,它的参数也无类型 C、 宏命令行可以看做是一行 C 语句 D、 C 编译中的预处理是在编译之前进行的 E、 在 C 语言中预处理命令都以“#”开头 第第 1010 章章 指指 针针 一、一、选择题选择题 1、 有以下程序 void fun(char *a, char *b) a=b; (*a)+; main() char c1=A,c2=a,*p1,*p2; p1= p2= fun(p1,p2); printf(“%c%cn“,c1,c2); 程序运行后的输出结果是:( A ) A)Ab B)aa C)Aa D)Bb 2、 下列选项中正确的语句组是:( ) A)char s8; s=“Beijing“; B)char *s; s=“Beijing“; C)char s8; s=“Beijing“; D)char *s; s=“Beijing“; 3、 已定义以下函数 fun(int *p) return *p; 该函数的返回值是:( ) A)不确定的值 B)形参 p 中存放的值 C)形参 p 所指存储单元中的值 D)形参 p 的地址值 4、 若有定义:int *p3;,则以下叙述中正确的是:( ) A)定义了一个类型为 int 的指针变量 p,该变量

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论