《2022年C语言试题及答案教案资料 .pdf》由会员分享,可在线阅读,更多相关《2022年C语言试题及答案教案资料 .pdf(33页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C 语 言 试 题 及 答 案名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 33 页 - - - - - - - - - 大学 C语言考试题库第 1 章 C 语言概述习题1. 单项选择题(1) C 语言是在 B 语言的基础上产生的。A. A B. B C. D D. E (2) 在 C 语言中,每个语句必须以 D 结束。A. 回车符 B. 冒号 C. 逗号 D. 分号(3) 标识符和关键字间,要用 C 隔开。A. 回车符 B. 冒号 C. 空格 D. 分号(4) 用 C
2、 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D.自动保存源文件(5) 下列说法中正确的是 ( B )。A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入C. 由于 C 程序是高级语言程序,因此输入后即可执行D. 由于 C 程序是高级语言程序,因此它由命令组成(6) 下列说法中正确的是 ( A )。A. C 语言程序由主函数和 0 个或多个函数组成B. C 语言程序由主程序和子程序组成C. C 语言程序由子程序
3、组成D. C 语言程序由过程组成名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 33 页 - - - - - - - - - (7) 下列说法中错误的是 ( D )。A. 主函数可以分为两个部分:主函数说明部分和主函数体B. 主函数可以调用任何非主函数的其他函数C. 任何非主函数可以调用其他任何非主函数D. 程序可以从任何非主函数开始执行2. 填空题(1) C 语言只有 32 个关键字和 9 种控制语句。(2) C 语言是一种“ 中级语言 ”,既具有 高级语言的特点又具有
4、低级语言的特点;既适合于开发系统软件又适合于编写应用程序。(3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。(4) 在 C 语言程序中允许出现的字符集是 ASCII码字符集。(5) C 语言的程序中有特殊含义的英语单词称为保留字。(6) C 语言标识符的长度是前 8 位有效。(7) C 语言中,标识符的定义规则是以字母或下划线为开头。(8) C 语言程序的注释可以出现在程序中的任何地方,它总是以 /* 符号作为开始标记,以 */ 符号作为结束标记。第 2 章数据类型运算符和表达式习题1. 单项选择题(1) 以下选项中,正确的 C 语言整型常量是 D 。A. 32L B.
5、 510000 C. -1.00 D. 567 (2) 以下选项中, D 是不正确的 C 语言字符型常量。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 33 页 - - - - - - - - - A. a B. x41 C. 101 D. a (3) 在 C 语言中,字符型数据在计算机内存中,以字符的 C 形式存储。A. 原码 B. 反码 C. ASCII 码 D. BCD码(4) 字符串的结束标志是 C 。A. 0 B. 0 C. 0 D. 0 (5) 算术运算符、
6、赋值运算符和关系运算符的运算优先级按从高到低依次为 B 。A. 算术运算、赋值运算、关系运算 B. 算术运算、关系运算、赋值运算C. 关系运算、赋值运算、算术运算 D. 关系运算、算术运算、赋值运算(6) 逻辑运算符中,运算优先级按从高到低依次为 D 。A. &,! ,| B. |,& ,! C. &,| ,! D. !,& ,| (7) 表达式!x|a=b 等效于 D 。A. !(x|a)=b) B. !(x|y)=b C. !(x|(a=b) D. (!x)|(a=b) (8) 设整型变量 m,n,a,b,c,d 均为 1,执行 (m=ab)&(n=cd) 后, m,n 的值是A 。A.
7、0 ,0 B. 0,1 C. 1,0 D. 1,1 (9) int b=0 ,x=1;执行语句 if(x+) b=x+1; 后,x,b 的值依次为 A 。A. 2 ,3 B. 2,0 C. 3,0 D. 3,2 (10) 设有语句 int a=3;,则执行了语句 a+=a-=a*=a; 后,变量 a 的值是 B 。A. 3 B. 0 C. 9 D. -12 (11) 在以下一组运算符中,优先级最低的运算符是 D 。A. * B. != C. + D. = (12) 设整型变量 i 值为 2,表达式 (+i)+(+i)+(+i)的结果是 B 。A. 6 B. 12 C. 15 D. 表达式出错名
8、师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 33 页 - - - - - - - - - (13) 若已定义 x 和 y 为 double 类型,则表达式 x=1 ,y=x+3/2 的值是 C 。A. 1 B. 2 C. 2.0 D. 2.5 (14) sizeof (double)的结果值是 A 。A. 8 B. 4 C. 2 D. 出错(15) 设 a=1,b=2,c=3,d=4,则表达式: ab? a : cd? a : d的结果为 D 。A. 4 B. 3 C.
9、 2 D. 1 (16) 设 a 为整型变量,不能正确表达数学关系:10a15的 C 语言表达式是 A 。A. 10a10 & a15 D. !(a=15) (17) 设 f是实型变量,下列表达式中不是逗号表达式的是 D 。A. f= 3.2, 1.0 B. f0, f0 D. f=(3.2, 1.0) (18) 设 ch 是 char 型变量,其值为 A,则下面表达式的值是 B 。ch=(ch=A& ch D. * (22) PC 机中, n在内存占用的字节数是 A 。A. 1 B. 2 C. 3 D. 4 (23) 字符串ABC在内存占用的字节数是 B 。A. 3 B. 4 C. 6 D.
10、 8 (24) 要为字符型变量 a 赋初值,下列语句中哪一个是正确的 B 。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 33 页 - - - - - - - - - A. char a=3; B. char a=3; C. char a=%; D. char a=*; (25) 下列不正确的转义字符是 C 。A. B. C. 074 D. 0 2. 填空题(1) C 语言中的逻辑值“真”是用 非 0 表示的,逻辑值“假”是用 0 表示的。(2) 符号常量的定义方法是
11、#define N 10 。(3) 无符号基本整型的数据类型符为 unsigned int ,双精度实型数据类型符为double ,字符型数据类型符为 char 。(4) 设 c=w,a=1,b=2,d=-5, 则表达式 x+1c, y!=c+2, -a-5*b=d+1, b=a=2的值分别为 1 、 0 、 1 、表达式错误。(5) 设 float x=2.5,y=4.7; int a=7;,表达式 x+a%3*(int)(x+y)%2/4的值为2.5 。(6) 判断变量 a 、b 的值均不为 0 的逻辑表达式为 (a!=0)&(b!=0) 。(7) 求解赋值表达式 a=(b=10)%(c=
12、6) ,表达式值、 a、b、c 的值依次为 4,4,10,6 。(8) 求解逗号表达式 x=a=3,6*a 后,表达式值、 x、a 的值依次为 18,3,3 。(9) 数学式 a/(b*c)的 C 语言表达式 a/(b*c) 。第 3 章顺序结构程序设计习题1. 选择题(1) printf(f=%3.2f%,3.478);的输出结果是 A 。A. f=3.48% B. f=3.5% C. f=3.48% % D. f=347.8% (2) printf(%c,%d,a, a);的输出结果是 A 。A. a,97 B. a 97 C. 97,a D. 97 a (3) scanf(%c,&a);
13、若要给变量输入大写字母 A,则以下正确的输入是 B 。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 33 页 - - - - - - - - - A. A B. A C. A D. 以上都不对(4) 若一个 int 类型的数据占 2 字节,则程序段: int x=-1;printf(%u,%d,x,x);的输出结果是 A 。A. 65535, -1 B. -1,65535 C. 32767, 32768 D. 32768,32767 (5) 在 TC 中,getchar
14、 、putchar 、printf、scanf 四个函数,均包含在头文件 B 中。A. math.h B. stdio.h C. stbio.h D. stdlib.h (6) 复合语句是用 C 括起来的语句组。A. ( ) B. C. D. (7) 下列格式符中,哪一个可以用于以八进制形式输出整数 C 。A. %d B. %8d C. %o D. %ld (8) 下列格式符中,哪一个可以用于以十六进制形式输出整数 B 。A. %16d B. %8x C. %d16 D. %d (9) a 是 int 类型变量, c 是字符变量,下列输入语句中哪一个是错误的 B 。A. scanf(%d,%c
15、,&a,&c); B. scanf(%d%c,a,c); C. scanf(%d%c,&a,&c); D. scanf(d=%d,c=%c,&a,&c); (10) 要使 double x; long a;的数据能正确的输出,输出语句应是 D 。A. printf(%d, %f,a, x); B. printf(%d, %1f,a, x); C. scanf(%1d, %1f,&a, &x); D. printf(%1d, %lf,a, x); 2. 程序改错题 ( 以下各个程序段均有 5 个错误,请先找出错误的位置,然后再改正) (1) 以下程序的功能是,从键盘输入一个字符并鸣笛输出。 #i
16、nclude stdio.h mian() /main() char c /char c; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 33 页 - - - - - - - - - getchar(c);/c = getchar(); putchar(007) ; /*鸣笛*/ c=putchar(); /putchar(c); / (2) 以下程序的功能是,输入长方形的两边长( 边长可以取整数和实数 ) ,输出它的面积和周长。 main /main() int a,
17、b,s,l; /double a,b,s,l; scanf(%d,%d,&a,&b); /scanf(%lf,%lf,&a,&b); s=a*b; l=a+b; /l=(a+b)*2; printf(l=%f,s=%fn,l); /printf(l=%lf,s=%lfn ,l,s); 3. 写出程序运行结果(1) main() int a,b; scanf(%2d%*2s%2d,&a,&b); printf(%dn,a+b); 运行时输入: 12345678 / 输出:68 (2) main() int a=3,b=5,x,y; x=a+1,b+6; 名师资料总结 - - -精品资料欢迎下载
18、- - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 33 页 - - - - - - - - - y=(a+1,b+6); printf(x=%dny=%dn,x,y); 输出: x=4 y=11 第 4 章选择结构程序设计习题1. 单项选择题(1) 选择结构程序设计的特点是_B_ 。A. 自上向下逐个执行 B. 根据判断条件,选择其中一个分支执行C. 反复执行某些程序代码 D. 以上都是(2) 假定所有变量均已正确定义,下列程序段运行后x 的值是 _B_。a=b=c=0,x=35; if(!a) x-; else
19、if(b); if(c) x=3; else x=4; A. 34 B. 4 C. 35 D. 3 (3) 下面的程序片段所表示的数学函数关系是_ A_ 。if(x0) y=1; else y=0; (4) 下列各语句序列中,能够且仅输出整型变量a、b 中最大值的是 ( C ) 。A. if(ab) printf(%dn,a); printf(%dn,b); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 33 页 - - - - - - - - - B. printf(
20、%dn,b); if(ab) printf(%dn,a); C. if(ab) printf(%dn,a); else printf(%dn,b); D. if(a0) y=1; else if(x=0) y=0; else y= 1; printf(%d,y); A. 1 B. 5 C. 0 D. 2 (6) 程序段 int x=5,y=8,max; max=(xy)?x:y; printf(%d,max);的输出结果是B 。A. 5 B. 8 C. 3 D. 13 (7) 程序段 int x=3,a=1;switch(x) case 4: a+;case 3: a+;case 2: a+;
21、case 1: a+; printf (%d,a);的输出结果是 D 。A. 1 B. 2 C. 3 D. 4 (8) 下列语句应将小写字母转换为大写字母,其中正确的是( B )。A.if(ch=a&ch=a&ch=a&cha&chz)?ch-32:ch; 2. 阅读程序,写出运行结果(1) void main () int a=10, b=4, c=3; if(ab) a=b ; if(ac) a=c ; printf(%d, %d, %dn, a, b, c) ; 输出: 10,4, 3 (2) void main ( ) 名师资料总结 - - -精品资料欢迎下载 - - - - - -
22、- - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 33 页 - - - - - - - - - int x=100, a=10, b=20, ok1=5, ok2=0; if(ab) if(b!=15) if(!ok1) x=1; else if(ok2) x=10; else x=-1; printf(%dn, x); 输出: -1 ;(3) int k,a=1,b=2; k=(a+=b) ? 2:3; printf(%d,k); 输出: 3 (4) void main() int s=1,k=0; switch (s) case 1
23、: k+=1; case 2: k+=2; default: k+=3; printf(“ %d ” ,k); 输出: 6 (5) void main() int s=1,k=0; switch (s) case 1: k+=1;break; case 2: k+=2;break; default: k+=3; printf(“ %d ” ,k); 输出: 1 第 5 章循环结构程序设计习题1. 单项选择题名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 33 页 - -
24、 - - - - - - - (1)for(i=1;i9;i+=1);该循环共执行了 B 次。A. 7 B. 8 C. 9 D. 10 (2)int a=2;while(a=0) a-;该循环共执行了 A 次。A. 0 B. 1 C. 2 D. 3 (3) 执行完循环 for(i=1;i100;i+);后,i 的值为 B 。A. 99 B. 100 C. 101 D. 102 (4) 以下 for语句中,书写错误的是 D 。A. for(i=1;i5;i+); B. i=1;for(;i5;i+); C. for(i=1;i5;) i+; D. for(i=1,i5,i+); (5) C 语句
25、,在循环条件初次判断为假,还会执行一次循环体。A. for B. while C. do-while D. 以上都不是(6) 循环结构的特点是 C 。A. 从上至下,逐个执行 B. 根据判断条件,执行其中一个分支C. 满足条件时反复执行循环体 D. 以上都对(7) i、j 已定义为 int 类型,则以下程序段中内循环体的执行次数是 A 。for(i=5;i;i-) for(j=0;j4;j+) A. 20 B. 24 C. 25 D. 30 (8) C 语言 while 语句中,用于条件的表达式是 D 。A. 关系表达式 B. 逻辑表达式 C. 算术表达式 D. 任意表达式(9) int a=
26、1, x=1; 循环语句 while(a10) x+; a+; 的循环执行 D 。A. 无限次 B. 不确定次 C. 10 次 D. 9 次(10) 下列程序段执行后 s 的值为 A 。int i=1, s=0; while(i+) if(!(i%3) break ; else s+=i ; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 33 页 - - - - - - - - - A. 2 B. 3 C. 6 D. 以上均不是2. 填空题(1) 三种循环语句是等价价
27、的。(2) 当循环体中的 switch 语句内有 break 语句,则只跳出 swicth 语句。同样,当 switch语句中有循环语句,内有 break 语句,则只跳出循环语句。(3) 循环体执行遇到 continue 语句时跳过本次循环进入下次循环。(4) 下列程序的功能是输入一个正整数,判断是否是素数,若为素数输出 1 ,否则输出 0 ,请为程序填空。void main( ) int i, x, y=1; scanf(%d, &x); for(i=2; i=x/2; i+) if ( x%i=0 ) y=0; break; printf(%dn,y); (5) 输入 N 个实数,输出其中
28、的最大值、最小值。 #include void main( ) int n,i; float no1,nmax,nmin; scanf(%d,&n); scanf(%f,&no1); nmax=no1; nmin=no1 ; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 33 页 - - - - - - - - - for(i=2;inmax) nmax=no1; if(no1nmin) nmin=no1; printf(MAX=%f MIN=%fn,nmax,nmi
29、n); (6) 输入若干个字符,分别统计数字字符的个数、英文字母的个数,当输入换行符时输出统计结果,运行结束。#include void main( ) char ch; int s1=0,s2=0 ; while( ch=getchar() )!=n) if(ch=0&ch=a&ch=A|ch0; y-) if(y%3=0) printf(%d, -y); continue; 输出: 852 (2)main() int k,n,m; n=10;m=1;k=1; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 -
30、- - - - - - 第 14 页,共 33 页 - - - - - - - - - while(k+0); 输出: i=3 i=1 i=-1 (4)#include void main( ) int k=0; char c=A; do switch(c+) case A: k+; break; case B: k-; case C: k+=2; break; case D: k=k%2; break; case E: k=k*10; break; default: k=k/3; k+; while(cG); printf(k=%dn, k); 输出: 8 (5) 输入数据: 2,4 #in
31、clude void main( ) int s=1,t=1,a,n; int i;scanf(%d ,%d,&a,&n); for(i=1;in;i+) t=t*10+1; s=s+t; s*=a; printf(SUM=%dn,s); 输出: 2468 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 33 页 - - - - - - - - - 4. 程序改错(1) 以下程序是显示 200 ,300 所有能被 7 整除的数,每行显示 5 个数,此程序有 5 处错。
32、main() int i,n=0; /*n用来记录每行已打印数的个数*/ while(i300) /while(i = 200) /i+; if(i%7=0) /if(i%7!=0) break; /continue; printf(%5d,i); n=n+1; if(n=5)/*满 5 个换行 */ /if(n = 5) printf(n); n=0; (2) 以下程序是求 1!+2!+3!+4!+5!+6!+7!的值,其中有 3 处错误。 main() int i,s,t=0; /long s = 0,t = 1; /int i; for(i=1;i=7;i+) 名师资料总结 - - -精
33、品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 33 页 - - - - - - - - - s=0; /去掉该语句 t=t*i; s=s+t; printf(sum=dn,s); /printf(“ sum=%ld ” ,s); 第 6 章函数习题1. 单项选择题(1)C 语言总是从 A 函数开始执行。A. main B. 处于最前的C.处于最后的 D. 随机选一个(2) 函数在定义时,省略函数类型说明符,则该函数值的类型为 A 。A. int B. float C. long D. doub
34、le (2) 以下 B 函数,真正地没有返回值。A. int a()int a=2;return (a); B. void b()printf(c); C. int a()int a=2;return a; D. 以上都是(3) 在 C 语言中,有关函数的说法,以下正确的是 C 。A. 函数可嵌套定义,也可嵌套调用 B. 函数可嵌套定义,但不可嵌套调用C. 函数不可嵌套定义,但可嵌套调用 D. 函数不可嵌套定义,也不可嵌套调用(4) 以下函数调用语句中,含有实参的个数为 B 。fun(2,3),(4,5+6,7); A. 1 B. 2 C. 5 D. 6 (5) 函数调用可以在 D 。A. 函
35、数表达式中 B. 函数语句中 C. 函数参数中 D. 以上都是(6) 被调函数返回给主调函数的值称为 C 。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 33 页 - - - - - - - - - A. 形参 B. 实参 C. 返回值 D. 参数(7) D ,可以不进行函数类型说明。A. 被调函数的返回值是整型或字符型时B. 被调函数的定义在主调函数定义之前时C. 在所有函数定义前,已在函数外预先说明了被调函数类型D. 以上都是(8) 被调函数通过 D 语句,将值返
36、回给主调函数。A. if B. for C. while D. return (9) 被调函数调用结束后,返回到 B 。A.主调函数中该被调函数调用语句处B.主函数中该被调函数调用语句处C.主调函数中该被调函数调用语句的前一语句D.主调函数中该被调函数调用语句的后一语句(10) 以下对 C 语言函数的有关描述中,正确的是 A 。A. 在 C 中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参B. C 函数既可以嵌套定义又可递归调用C. 函数必须有返回值,否则不能使用函数D. C 程序中有调用关系的所有函数必须放在同一个源程序文件中(11)C 语言中函数的隐含存储类型是 A 。A.
37、 auto B. static C. extern D. 无存储类型(12) 能把函数处理结果的两个数据返回给主调函数,在下面的方法中不正确的是 A 。A. return 这两个数B. 形参用两个元素的数组C. 形参用两个这种数据类型的指针D. 用两个全局变量2. 填空题名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 33 页 - - - - - - - - - (1) 变量的作用域主要取决于变量定义的位子,变量的生存期既取决于变量存储类型,又取决于变量存储方式。(2)
38、 说明变量时,若省略存储类型符,系统默认其为整形 存储类别,该存储类别的类型符为: int 。(3) 静态型局部变量的作用域是静态局部变量定义的复合语句或函数体内 ,生存期是整个程序运行期内。(4) 函数中的形参和调用时的实参都是数组名时,传递方式为地址传递,都是变量时,传递方式为值传递。(5) 函数的形式参数的作用域为整个函数体内,全局的外部变量和函数体内定义的局部变量重名时,函数体内定义的局部变量优先。(6) 若自定义函数要求返回一个值,则应在该函数体中有一条 return 语句,若自定义函数要求不返回一个值,则应在该函数说明时加一个类型说明符 void 。(7) 若函数的形式参数是指针类
39、型,则实参可以是数组名、地址或指针变量。(8) 函数的参数为 char *类型时,形参与实参结合的传递方式为地址传递。(9) 函数的实参为常量时,形参与实参结合的传递方式为值传递。(10) 对数组按值从大到小的顺序排序后输出,请填空。#include void main() float a7=2,6,3,8,3,12,9; int i; void sort(float*,int); sort(a,7 ) ; for(i=0;i7;i+) printf(%f ,ai); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理
40、 - - - - - - - 第 19 页,共 33 页 - - - - - - - - - printf(n); void sort( float *p, int n ) int i,j,k; float t; for(i=0;in-1;i+) k=i; for(j=i+1;jn;j+) if( pkpj ) k=j; if(k != i) t=*(p+i); *(p+i)=*(p+k); *(p+k)=t; (11) 下列函数在 n 个元素的一维数组中,找出最大值、最小值并传送到调用函数,请填空。 #include void find(float *p, float *max, float
41、 *min, int n) int k; float t; *max=*p; *min = *p; for(k=1;k*max ) *max=t; if(tb) f=1; else if(a=b) f=0; else f=-1; return f; 输出: -1(2) 键盘输入 abcdef #include void fun( ) char c ; if(c=getchar( )!=n) fun( ) ; putchar(c); void main( ) fun( ); 输出: fedcba (3) #include #define C 5 int x=1,y=C; void main( )
42、 int x; x=y+; printf(%d %dn, x,y); if(x4) int x ; x=+y; printf(%d %dn,x,y) ; x+=y-; printf(%d %dn,x,y); (4) #include int c , a=4 ; func(int a , int b) c=a*b ; a=b-1 ; b+ ; return (a+b+1) ; void main( ) int b=2 , p=0 ; c=1 ; p=func(b , a) ; printf(%d,%d,%d,%dn, a,b,c,p) ; 名师资料总结 - - -精品资料欢迎下载 - - - -
43、 - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 21 页,共 33 页 - - - - - - - - - 输出: 4,2,8,9 (5) unsigned fun6(unsigned num) unsigned k=1; do k*=num%10; num/=10; while(num); return k; void main( ) unsigned n=26; printf(%dn, fun6(n); 输出: 12 输出: 5 6 7 7 12 6 第 7 章数组习题1. 单项选择题(1) int a4=5,3,8,9;其中 a3
44、的值为 ( D )。A. 5 B. 3 C. 8 D. 9 (2) 以下 4 个字符串函数中, ( A )所在的头文件与其他 3 个不同。A. gets B. strcpy C. strlen D. strcmp (3) 以下 4 个数组定义中, ( D )是错误的。A. int a7; B. #define N 5 long bN; C. char c5; D. int n,dn; (4) 对字符数组进行初始化,( B )形式是错误。A. char c1 =1, 2, 3; B. char c2 =123; C. char c3 = 1, 2, 3, 0; D. char c4 =123;
45、(5) 在数组中,数组名表示( A )。A. 数组第 1 个元素的首地址 B.数组第 2 个元素的首地址C. 数组所有元素的首地址 D.数组最后 1 个元素的首地址名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 22 页,共 33 页 - - - - - - - - - (6) 若有以下数组说明,则数值最小的和最大的元素下标分别是( B )。int a12 = 1,2,3,4,5,6,7,8,9,10,11,12; A. 1,12 B. 0,11 C. 1,11 D. 0,12 (7
46、) 若有以下说明,则数值为 4 的表达式是 ( D )。int a12 =1,2,3,4,5,6,7,8,9,10,11,12; char c=a, d, g ; A. ag-c B. a4 C. ad-c D. ad-c (8) 设有定义: char s12 = string ; 则 printf( %dn,strlen(s); 的输出是 ( A )。A. 6 B. 7 C. 11 D. 12 (9) 设有定义: char s12 = string; 则 printf(%dn , sizeof(s); 的输出是 ( B )。A. 6 B. 7 C. 11 D. 12 (10) 合法的数组定义
47、是 ( A )。A. char a = string; B. int a5 =0,1,2,3,4,5; C. char a=string ; D. char a =0,1,2,3,4,5; (11) 合法的数组定义是 ( B )。A. int a3 =0,1,2,3,4,5; B. int a 3 =0,1,2,3,4; C. int a23=0,1,2,3,4,5,6; D. int a23=0,1,2,3,4,5,; (12) 下列语句中,正确的是 ( D )。A. char a3 =abc, 1; B. char a 3 =abc, 1; C. char a3 =a, 1; D. cha
48、r a 3 = a, 1; (13) 下列定义的字符数组中,输出 printf(%sn, str2) ;的输出是 ( C )。static str320 = basic, foxpro, windows; A. basic B. foxpro C. windows D. 输出语句出错(14) 下列各语句定义了数组,其中哪一个是不正确的( C )。A. char a310=China,American,Asia; B. int x22=1,2,3,4; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - -
49、- - - 第 23 页,共 33 页 - - - - - - - - - C. float x2 =1,2,4,6,8,10; D. int m3=1,2,3,4,5,6; (15) 数组定义为 int a32=1,2,3,4,5,6,值为 6 的数组元素是 ( B )。A. a32 B. a21 C. a12 D. a23 2. 填空题(1) C 语言中,数组的各元素必须具有相同的类型,元素的下标下限为 0 ,下标必须是正整数、 0、或者常量。但在程序执行过程中,不检查元素下标是否越界。(2) C 语言中,数组在内存中占一片连续的存储区,由数组名代表它的首地址。数组名是一个常量,不能对它进
50、行赋值运算。(3) 执行 static int b5, a 3 =1,2,3,4,5,6; 后,b4 = 0 ,a12 = 6 。(4) 设有定义语句 static int a34 =1,2,3; 则 a10值为 2 ,a11 值为 0 ,a21的值为 0 。(5) 如定义语句为 char a = windows,b = 2000;,语句printf(%s,strcat(a,b);的输出结果为 windows2000 。(6) 输入 20 个数,输出它们的平均值,输出与平均值之差的绝对值为最小的数组元素。请填空。#include #include void main( ) float a20,