C语言习题有答案曹
更新时间:2023-10-09 12:02:01 阅读量: 综合文库 文档下载
第1章 C语言概述习题
1. 单项选择题
(1) C 语言是在 语言的基础上产生的。1B A. A B. B C. D D. E
(2) 在 C 语言中,每个语句必须以 结束。 2D A. 回车符 B. 冒号 C. 逗号 D. 分号 (3) 标识符和关键字间,要用 隔开。 3 C
A. 回车符 B. 冒号 C. 空格 D. 分号
(4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( )。 4B
A. 生成可执行目标文件 B. 生成目标程序 C. 输出运行结果 D.自动保存源文件 (5) 下列说法中正确的是( )。 5B
A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入
B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C. 由于C 程序是高级语言程序,因此输入后即可执行 D. 由于 C 程序是高级语言程序,因此它由命令组成 (6) 下列说法中正确的是( )。 6A
A. C 语言程序由主函数和 0 个或多个函数组成 B. C 语言程序由主程序和子程序组成 C. C 语言程序由子程序组成 D. C 语言程序由过程组成 (7) 下列说法中错误的是( )。 7D
A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行
2. 填空题
(1) C 语言只有 个关键字和 种控制语句。 1 32,9 (2) C 语言是一种“ ”,既具有 的特点又具有 的特点;既适合于开发系统软件又适合于编写应用程序。 2中级语言 高级 低级
(3) 每个源程序有且只有一个 函数,系统总是从该函数开始执行C语言程序。3 main (4) 在 C 语言程序中允许出现的字符集是 。 4大小写英文字母(52个) ,数字(10个) , 键盘符号(33个)和 转义字符(11个)
(5) C 语言的程序中有特殊含义的英语单词称为 。 5 关键字 (6) C 语言标识符的长度是前 位有效。6 8
(7) C 语言中,标识符的定义规则是 。7 由字母数字下划线组成,
且不能以数字开头
(8) C 语言程序的注释可以出现在程序中的任何地方,它总是以 符号作为开始标记,以 符号作为结束标记。8 /*,*/
第2章 数据类型运算符和表达式习题
1. 单项选择题
(1) 以下选项中,正确的 C 语言整型常量是 。 1D A. 32L B. 510000 C. -1.00 D. 567
(2) 以下选项中, 是不正确的 C 语言字符型常量。2D A. 'a' B. '\\x41' C. '\\101' D. \
(3) 在 C 语言中,字符型数据在计算机内存中,以字符的 形式存储。 3A A. 原码 B. 反码 C. ASCII 码 D. BCD码 (4) 字符串的结束标志是 。 4C
A. 0 B. '0' C. '\\0' D. \
(5) 算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为 。5B A. 算术运算、赋值运算、关系运算 B. 算术运算、关系运算、赋值运算 C. 关系运算、赋值运算、算术运算 D. 关系运算、算术运算、赋值运算 (6) 逻辑运算符中,运算优先级按从高到低依次为 。 6D
A. &&,!,|| B. ||,&&,! C. &&,||,! D. !,&&,|| (7) 表达式!x||a==b 等效于 。7D
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=a>b)&&(n=c>d)后, m,n 的值是 。8A A. 0,0 B. 0,1 C. 1,0 D. 1,1
(9) int b=0,x=1;执行语句 if(x++) b=x+1; 后,x,b 的值依次为 。 9A A. 2,3 B. 2,0 C. 3,0 D. 3,2 (10) 设有语句 int a=3;,则执行了语句 a+=a-=a*=a; 后,变量 a 的值是 。10B A. 3 B. 0 C. 9 D. -12
(11) 在以下一组运算符中,优先级最低的运算符是 。 11D A. * B. != C. + D. =
(12) 设整型变量 i 值为2,表达式(++i)+(++i)+(++i)的结果是 。12 C A. 6 B. 12 C. 15 D. 表达式出错
(13) 若已定义 x 和 y为double 类型,则表达式 x=1,y=x+3/2 的值是 。13D A. 1 B. 2 C. 2.0 D. 2.5
(14) sizeof (double)的结果值是 。 14A A. 8 B. 4 C. 2 D. 出错
(15) 设a=1,b=2,c=3,d=4,则表达式:a
(16) 设a 为整型变量,不能正确表达数学关系:1010 && a<15 D. !(a<=10) && !(a>=15)
(17) 设 f是实型变量,下列表达式中不是逗号表达式的是 。 17D A. f= 3.2, 1.0 B. f>0, f<10 C. f=2.0, f>0 D. f=(3.2, 1.0) (18) 设ch是 char型变量,其值为 'A',则下面表达式的值是 。 18B ch=(ch>='A'&& ch<='Z')? (ch+32):ch A. A B. a C. Z D. Z
(19) 以下运算符中,结合性与其他运算符不同的是 。19A
A. ++ B. % C. / D. + (20) 以下用户标识符中,合法的是 。 20B A. int B. nit C. 123 D. a+b
(21) C 语言中,要求运算对象只能为整数的运算符是 。21A A. % B. / C. > D. *
(22) PC 机中,'\\n'在内存占用的字节数是 。 22A A. 1 B. 2 C. 3 D. 4
(23) 字符串\在内存占用的字节数是 。 23A A. 3 B. 4 C. 6 D. 8
(24) 要为字符型变量 a赋初值,下列语句中哪一个是正确的 。24A A. char a=\ B. char a=\ C. char a=%; D. char a=*; (25)下列不正确的转义字符是 。 25C A. \\\\ B. \\' C. 074 D. \\0 2. 填空题
(1) C 语言中的逻辑值“真”是用 表示的,逻辑值“假”是用 表示的。1.1,0 (2) 符号常量的定义方法是 。 2.#define 符号常量名称 值
(3) 无符号基本整型的数据类型符为 ,双精度实型数据类型符为 ,字符型数据类型符为 。3.int,double float,char
(4) 设 c='w',a=1,b=2,d=-5, 则表达式 'x'+1>c, 'y'!=c+2, -a-5*b<=d+1, b==a=2的值分别为 、 、 、 。 4.1,0,1,1
(5) 设 float x=2.5,y=4.7; int a=7;,表达式 x+a%3*(int)(x+y)%2/4的值为 。5.2.5 (6) 判断变量 a、b 的值均不为 0 的逻辑表达式为 。 6.a!=0&&b!=0
(7) 求解赋值表达式 a=(b=10)%(c=6),表达式值、a、b、c 的值依次为 。 7.4,4,10,6 (8) 求解逗号表达式 x=a=3,6*a 后,表达式值、x、a 的值依次为 。8.18,3,3 (9) 数学式a/(b*c)的 C 语言表达式 。9.a/b/c
第3章 顺序结构程序设计习题
1.单项选择题
(1) printf(\的输出结果是 。A A. f=3.48% B. f=3.5% C. f=3.48% % D. f=347.8% (2) printf(\;的输出结果是 。 A A. a,97 B. a 97 C. 97,a D. 97 a
(3) scanf(\;若要给变量输入大写字母 A,则以下正确的输入是 。D A. 'A'
(4) 若一个 int 类型的数据占 2 字节,则程序段:int x=1;printf(\的输出结果是 。 A
A. 65535, 1 B. 1,65535 C. 32767, 32768 D. 32768,32767
(5) 在 TC 中,getchar、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. ? C. %o D. %ld
(8) 下列格式符中,哪一个可以用于以十六进制形式输出整数 。B A. d B. %8x C. ?6 D. %d
(9) a 是int类型变量,c是字符变量,下列输入语句中哪一个是错误的 。 B A. scanf(\ B. scanf(\
C. scanf(\ D. scanf(\
(10) 要使double x; long a;的数据能正确的输出,输出语句应是 。 D A. printf(\ B. printf(\C. scanf(\ D. printf(\
2. 程序改错题(以下各个程序段均有 5 个错误,请先找出错误的位置,然后再改正) (1) 以下程序的功能是,从键盘输入一个字符并鸣笛输出。 # include \ mian()
{ char c getchar(c);
putchar('\\007') ; /*鸣笛*/ c=putchar(); (1)正确的程序为 # include \ main()
{ char c ; getchar(c);
putchar('\\007') ; /*鸣笛*/ putchar(); }
(2) 以下程序的功能是,输入长方形的两边长(边长可以取整数和实数),输出它的面积和周长。 main {
int a,b,s,l;
scanf(\ s=a*b; l=a+b;
printf(\ }
(2) 正确的程序为 main() {
int a,b,s,l;
scanf(\ s=a*b; l=2*(a+b);
printf(\ }
3. 写出程序运行结果 (1)
main() {
int a,b;
scanf(\ printf(\ }
运行时输入:12345678 (1) 68 (2)
main() {
int a=3,b=5,x,y; x=a+1,b+6; y=(a+1,b+6);
printf(\
}
(2) 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 if(b); if(c) x=3; else x=4; A. 34 B. 4 C. 35 D. 3
(3) 下面的程序片段所表示的数学函数关系是______。 A if(x<0) y= -1; if(x>0) y=1; else y=0;
(4) 下列各语句序列中,能够且仅输出整型变量a、b 中最大值的是( )。C A. if(a>b) printf(\ B. printf(\
C. if(a>b) printf(\ D. if(a0) y=1;
else if(x==0) y=0; else y= 1;
printf(\
A. 1 B. 1 C. 0 D. 2
(6) 程序段int x=5,y=8,max; max=(x>y)?x:y; printf(\的输出结果是 。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++;case 1: a++;} printf (\的输出结果是 。 D
A. 1 B. 2 C. 3 D. 4
(8) 下列语句应将小写字母转换为大写字母,其中正确的是( )。B A.if(ch>='a'&ch<='z') ch=ch-32; B.if(ch>='a'&&ch<='z')ch=ch-32; C.ch=(ch>='a'&&ch<='z')?ch-32:??; D.ch=(ch>'a'&&ch<'z')?ch-32:ch;
2. 阅读程序,写出运行结果 (1)
void main () {
int a=10, b=4, c=3; if(a
printf(\ } (1) 10, 4, 3; (2)
void main ( ) {
int x=100, a=10, b=20, ok1=5, ok2=0 ; if(a
(3)
int k,a=1,b=2;
k=(a++==b) ? 2:3; printf(\ (3) 3
(4)
void main() { int s=1,k=0; switch (s) { case 1: k+=1; case 2: k+=2; default: k+=3;
}
printf(“%d”,k); } (4) 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); } (5) 1
第5章 循环结构程序设计习题
1. 单项选择题
(1)for(i=1;i<9;i+=1);该循环共执行了 次。 (1)B A. 7 B. 8 C. 9 D. 10
(2)int a=2;while(a=0) a--;该循环共执行了 次。 (2)A A. 0 B. 1 C. 2 D. 3
(3)执行完循环 for(i=1;i<100;i++);后,i 的值为 。 (3)A A. 99 B. 100 C. 101 D. 102
(4)以下 for语句中,书写错误的是 。 (4)A
A. for(i=1;i<5;i++); B. i=1;for(;i<5;i++); C. for(i=1;i<5;) i++; D. for(i=1,i<5,i++); (5) 语句,在循环条件初次判断为假,还会执行一次循环体。(5)A A. for B. while C. do-while D. 以上都不是 (6)循环结构的特点是 。(6)B
A. 从上至下,逐个执行 B. 根据判断条件,执行其中一个分支 C. 满足条件时反复执行循环体 D. 以上都对
(7) i、j已定义为 int 类型,则以下程序段中内循环体的执行次数是 。(7)A for(i=5;i;i--)
for(j=0;j<4;j++){…}
A. 20 B. 24 C. 25 D. 30
(8) C 语言 while 语句中,用于条件的表达式是 。 (8)A
A. 关系表达式 B. 逻辑表达式 C. 算术表达式 D. 任意表达式 (9) int a=1, x=1; 循环语句while(a<10) x++; a++; 的循环执行 。(9)D A. 无限次 B. 不确定次 C. 10 次 D. 9 次 (10)下列程序段执行后 s 的值为 。 (10)D
int i=1, s=0; while(i++) if(!(i%3)) break ; else s+=i ; A. 2 B. 3 C. 6 D. 以上均不是
2. 填空题
(1)三种循环语句是 价的。等价
(2)当循环体中的switch语句内有break语句,则只跳出 语句。同样,当switch语句中有循环语句,内有 break 语句,则只跳出 语句。 switch,for
(3)循环体执行遇到continue 语句时 。提前结束本次循环进行下一次循环是否进行的判断
(4)下列程序的功能是输入一个正整数,判断是否是素数,若为素数输出 1,否则输出 0,请为程序填空。 x%i==0 void main( ) {
int i, x, y=1;
scanf(\ for(i=2; i<=x/2; i++)
if ( ) { y=0; break; } printf(\ }
(5)输入 N个实数,输出其中的最大值、最小值。 &n
#include
float no1,nmax,nmin; scanf(\ nmax=no1; for(i=2;i<=n;i++) {
scanf(\ );
if(nox>nmax) nmax=nox; }
printf(\ MIN=%f\\n\ }
(6)输入若干个字符,分别统计数字字符的个数、英文字母的个数,当输入换行符时输出统计结果,运行结束。ch=getchar() ch>=?A?&&ch<=?Z? #include
char ch; while(( )!='\\n') {
if(ch>='0'&&ch<='9') s1++;
if(ch>='a'&&ch<='z' || ) s2++; } }
3. 阅读下列程序,写出程序运行的输出结果 (1)
void main( ) { int y=9;
for( ;y>0; y--)
if(y%3==0) { printf(\ continue;} }
(1) 852 (2) main() {
int k,n,m;
n=10;m=1;k=1; while (k++<=n) m*=2;
printf(\ }
(2) 1024 (3)
void main ( ) {
int i=5; do {
switch (i%2) {
case 4: i--; break; case 6: i--; continue; }
i-- ; i-- ;
printf(\ \ } while(i>0);
}
(3) i=3 i=1 i=-1 (4)
#include
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(c<'G');
printf(\ }
(4) k=8
(5)输入数据:2,4
#include
int s=1,t=1,a,n;
scanf(\ for(int i=1;i t=t*10+1; s=s+t; } s*=a; printf(\ } (5) SUM=2468 4. 程序改错 (1) 以下程序是显示[200,300]所有能被 7 整除的数,每行显示 5 个数,此程序有 5处错。 main() { int i,n=0; /*n用来记录每行已打印数的个数*/ while(i<300) { if(i%7==0) break; printf(\ n=n+1; if(n=5)/*满5个换行*/ { printf(\ n=0; } } } (1) main() { int i=200,n=0; /*n用来记录每行已打印数的个数*/ while(i<=300) {if(i%7==0) { //break; printf(\ n=n+1; if(n==5)/*满5个换行*/ { printf(\ n=0; } } i++; } } (2) 以下程序是求 1!+2!+3!+4!+5!+6!+7!的值,其中有 3 处错误。 main() { int i,s,t=0; for(i=1;i<=7;i++) { s=0; t=t*i; s=s+t; } printf(\ } (2) main() { int i,s=0,t=1; for(i=1;i<=7;i++) { t=t*i; s=s+t; } printf(\ } 第6章 函数习题 1. 单项选择题 (1)C 语言总是从 函数开始执行。 1 A A. main B. 处于最前的 C.处于最后的 D. 随机选一个 (2)函数在定义时,省略函数类型说明符,则该函数值的类型为 。2 A A. int B. float C. long D. double (2)以下 函数,真正地没有返回值。 2 B A. int a(){int a=2;return (a);} B. void b(){printf(\ C. int a(){int a=2;return a;} D. 以上都是 (3)在 C 语言中,有关函数的说法,以下正确的是 。 3 A A. 函数可嵌套定义,也可嵌套调用 B. 函数可嵌套定义,但不可嵌套调用 C. 函数不可嵌套定义,但可嵌套调用 D. 函数不可嵌套定义,也不可嵌套调用 (4)以下函数调用语句中,含有实参的个数为 。4 C fun((2,3),(4,5+6,7)); A. 1 B. 2 C. 5 D. 6 (5)函数调用可以在 。 5 D A. 函数表达式中 B. 函数语句中 C. 函数参数中 D. 以上都是 (6)被调函数返回给主调函数的值称为 。6 C A. 形参 B. 实参 C. 返回值 D. 参数 (7) ,可以不进行函数类型说明。 7 D A. 被调函数的返回值是整型或字符型时 B. 被调函数的定义在主调函数定义之前时 C. 在所有函数定义前,已在函数外预先说明了被调函数类型 D. 以上都是 (8)被调函数通过 语句,将值返回给主调函数。 8 D A. if B. for C. while D. return (9)被调函数调用结束后,返回到 。 9 D A.主调函数中该被调函数调用语句处 B.主函数中该被调函数调用语句处 C.主调函数中该被调函数调用语句的前一语句 D.主调函数中该被调函数调用语句的后一语句 (10)以下对 C语言函数的有关描述中,正确的是 。10 AB A. 在 C 中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参 B. C函数既可以嵌套定义又可递归调用 C. 函数必须有返回值,否则不能使用函数 D. C程序中有调用关系的所有函数必须放在同一个源程序文件中 (11)C 语言中函数的隐含存储类型是 。 11 C A. auto B. static C. extern D. 无存储类型 (12)能把函数处理结果的两个数据返回给主调函数,在下面的方法中不正确的是 。12A A. return 这两个数 B. 形参用两个元素的数组 C. 形参用两个这种数据类型的指针 D. 用两个全局变量 2. 填空题 (1) 变量的作用域主要取决于变量 ,变量的生存期既取决于变量 ,又取决于变量 。 1所处的位置,所处的位置,存储类型 (2) 说明变量时,若省略存储类型符,系统默认其为 存储类别,该存储类别的类型符为: 。2动态,auto (3) 静态型局部变量的作用域是 ,生存期是 。3它所在的局部,整个程序 (4) 函数中的形参和调用时的实参都是数组名时,传递方式为 ,都是变量时,传递方式为 。 4址传递,值传递 (5) 函数的形式参数的作用域为 ,全局的外部变量和函数体内定义的局部变量重名时, 变量优先。 5该函数中,局部 (6) 若自定义函数要求返回一个值,则应在该函数体中有一条 语句,若自定义函数要求不返回一个值,则应在该函数说明时加一个类型说明符 。 6 return,void (7) 若函数的形式参数是指针类型,则实参可以是 或 。7指针,数组名 (8) 函数的参数为 char *类型时,形参与实参结合的传递方式为 。8 址传递 (9) 函数的实参为常量时,形参与实参结合的传递方式为 。9 值传递 (10) 对数组按值从大到小的顺序排序后输出,请填空。 #include float a[7]={2,6,3,8,3,12,9}; int i ; void sort(float*,int); ; for(i=0;i<7;i++) printf(\ printf(\ } void sort( ) { int i,j,k; float t; for(i=0;i k=i; for(j=i+1;j if( ) k=j; { t=*(p+i); *(p+i)=*(p+k); *(p+k)=t; } } } 10 sort(a,7) float* p,int n *(p+k)<*(p+j) k!=i (11) 下列函数在 n 个元素的一维数组中,找出最大值、最小值并传送到调用函数,请填空。 11 float t; *min=*p; *max void find(float *p, int max, int min, int n) { int k; *max=*p; for(k=1;k t=*(p+k); if( ) *max=t; if(t<*min) *min=t; } } 3. 写出下列程序运行结果: (1) main() { int i=1,p; p=fun(i,i+1); printf(\ } int fun(int a,int b) { int f; if(a>b) f=1; else if(a==b) f=0; else f=-1; return f; } 1. -1 (2)键盘输入 abcdef #include char c ; if((c=getchar( ))!='\\n') fun( ) ; putchar(c); } void main( ) { fun( ); } 2. fedcba (3) #include int x; x=y++; printf(\ if(x>4) { int x ; x=++y; printf(\ } x+=y--; printf(\ } 3. 5 6 7 7 12 6 (4) #include 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(\ } 4. 4,2,8,9 (5) unsigned fun6(unsigned num) { unsigned k=1; do { k*=num; num/=10; } while(num); return k; } void main( ) { unsigned n=26; printf(\ } 5. 12 第7章 数组习题 1. 单项选择题 (1) int a[4]={5,3,8,9};其中 a[3]的值为( )。D A. 5 B. 3 C. 8 D. 9 (2) 以下 4 个字符串函数中,( )所在的头文件与其他 3 个不同。AA. gets B. strcpy C. strlen D. strcmp (3) 以下 4 个数组定义中,( )是错误的。D A. int a[7]; B. #define N 5 long b[N]; C. char c[5]; D. (4) 对字符数组进行初始化,( )形式是错误。 B int n,d[n]; A. char c1[ ]={'1', '2', '3'}; B. char c2[ ]=123; C. char c3[ ]={ '1', '2', '3', '\\0'}; D. char c4[ ]=\ (5) 在数组中,数组名表示( )。 A A. 数组第 1 个元素的首地址 B.数组第 2 个元素的首地址 C. 数组所有元素的首地址 D.数组最后 1 个元素的首地址 (6) 若有以下数组说明,则数值最小的和最大的元素下标分别是( )。B int a[12] ={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) 若有以下说明,则数值为 4 的表达式是( )。 D int a[12] ={1,2,3,4,5,6,7,8,9,10,11,12}; char c=?a?, d, g ; A. a[g-c] B. a[4] C. a['d'-'c'] D. a['d'-c] (8) 设有定义:char s[12] = \ 则printf( \ 的输出是( )。A A. 6 B. 7 C. 11 D. 12 (9) 设有定义:char s[12] = \ 则printf(\的输出是( )。D A. 6 B. 7 C. 11 D. 12 (10) 合法的数组定义是( )。 D A. char a[ ]= \ B. int a[5] ={0,1,2,3,4,5}; C. char a= \ D. char a[ ]={0,1,2,3,4,5} (11) 合法的数组定义是( )。 C A. int a[3][ ]={0,1,2,3,4,5}; B. int a[ ][3] ={0,1,2,3,4}; C. int a[2][3]={0,1,2,3,4,5,6}; D. int a[2][3]={0,1,2,3,4,5,}; (12) 下列语句中,正确的是 ( )。D A. char a[3][ ]={'abc', '1'}; B. char a[ ][3] ={'abc', '1'}; C. char a[3][ ]={'a', \ D. char a[ ][3] ={ \ (13) 下列定义的字符数组中,输出 printf(\的输出是( )。 C static str[3][20] ={ \ \ A. basic B. foxpro C. windows D. 输出语句出错 (14) 下列各语句定义了数组,其中哪一个是不正确的( )。 C A. char a[3][10]={\ B. int x[2][2]={1,2,3,4}; C. float x[2][ ]={1,2,4,6,8,10}; D. int m[][3]={1,2,3,4,5,6}; (15) 数组定义为 int a[3][2]={1,2,3,4,5,6},值为6的数组元素是( )。B A. a[3][2] B. a[2][1] C. a[1][2] D. a[2][3] 2. 填空题 (1) C 语言中,数组的各元素必须具有相同的 ,元素的下标下限为 ,下标必须是正整数、0、或者 。但在程序执行过程中,不检查元素下标是否 。 数据类型,0,符号常量,越界 (2) C 语言中,数组在内存中占一片 的存储区,由 代表它的首地址。数组名是一个 常量,不能对它进行赋值运算。连续,数组名,地址 (3) 执行 static int b[5], a[ ][3] ={1,2,3,4,5,6}; 后,b[4] = ,a[1][2] = 。 0,6 (4) 设有定义语句 static int a[3][4] ={{1},{2},{3}}; 则 a[1][0]值为 ,a[1][1] 值为 ,a[2][1]的值为 。 2,0,0 (5) 如定义语句为 char a[ ]= \]= \,语句 printf(\的输出结果为 。 Windows95 (6) 输入 20 个数,输出它们的平均值,输出与平均值之差的绝对值为最小的数组元素。请填空。 for(i=0;i<20;i++) scanf(“%f”,&a[i]); pjz/=20; printf(“%f\\n”,t); #include float a[20],pjz=0,s,t; int i,k; for(i=0;i<20;i++) pjz+=a[i]; s=fabs(a[0]-pjz); for(i=1;i<20;i++) if(fabs(a[i]-pjz) s=fabs(a[i]-pjz); t=a[i]; } } (7) 以下程序以每行 10个数据的形式输出 a 数组,请填空。&a[i] i==0 void main( ) { int a[50],i; printf(\输入50个整数:\ for(i=0; i<50; i++) scanf( \ ); for(i=1; i<=50; i++) { if( ) printf( \ ) ; printf( \ } } (8) 下面程序的功能是输出数组 s 中最大元素的下标,请填空。k=p void main( ) { int k, p; int s[ ]={1,-9,7,2,-10,3}; for(p=0,k=p; p<6; p++) if(s[p]>s[k]) ; printf(\ } 3. 阅读程序,分析程序的功能。 (1) #include char s[80]; a[i-1] int i ; for(i=0; i<80; i++) { s[i]=getchar( ); if(s[i]=='\\n') break; } s[i]='\\0'; i=0; while(s[i]) putchar(s[i++]); putchar(?\\n?); } 从键盘输入一个字符串,并逐一输出 (2) #include char str[10][80], c[80]; int i; for(i=0; i<10; i++) gets(str[i]); strcpy(c, str[0]) ; for(i=1; i<10; i++) if(strlen(c) printf( \ } 从键盘输入若干字符串,找到其中最长的一个输出及它的长度 (3) #include char a[10][80], c[80]; int i, j, k; for(i=0; i<10; i++) gets(a[i]); for(i=0; i<9; i++) { k=i ; for(j=i+1; j<10; j++) if(strcmp (a [j], a[k])<0) k=j; if(k!=i ) {strcpy(c,a[i]) ; strcpy(a[i], a[k]); strcpy(a[k],c);} // 字符串交换 } for(i=0; i<10; i++) puts (a[i]); } 从键盘输入若干字符串,并将它们按大到小顺序排好再输出 (4) 阅读程序,写出运行结果。 #include int a[6]={12,4,17,25,27,16},b[6]={27,13,4,25,23,16},i,j; for(i=0;i<6;i++) { for(j=0;j<6;j++) if(a[i]==b[j])break; if(j<6) printf(\ } printf(\ } 4 25 27 16 (5) 阅读程序,写出运行结果。 #include char a[8],temp; int j,k; for(j=0;j<7;j++) a[j]='a'+j; a[7]='\\0'; for(j=0;j<3;j++) { temp=a[6]; for(k=6;k>0;k--) a[k]=a[k-1]; a[0]=temp; printf(\ } } (5) gabcdef fgabcde efgabcd (6) 阅读下列程序,写出程序运行的输出结果。 #include char str1[ ]=\ for(int i=0;i<4;i++) { printf(\ str1[i]=' '; str1[strlen(str1)-1]='\\0'; } } (6) ******* ***** *** * 第8章 指针习题 1. 单项选择题 (1) 指针 pstr所指字符串的长度为 。char *pstr=\B A. 15 B. 14 C. 13 D. 12 (2) 对于 char **pstr;,以下正确的是 。 D A. *pstr=\ B. pstr=\ C. *pstr=\ D. **pstr=\ (3) 以下程序段的输出结果为 。 D char astr[5]=\ char *pstr=astr; printf(\ A. 1 B. 2 C. ASCII码值为 1 的字符 D. ASCII 码值为 2 的字符 (4) 下述程序段的输出结果为 。 D char astr[]=\ char *pstr=&astr[5]; while(--pstr>=astr) putchar(*pstr); putchar('\\n'); A. abc B. cba C. abcde D. edcba (5) 若有定义 int a=1,*b,c;,以下不正确的是 。A A. b=a B. b=&a C. b=&a,c=*b D. c=a (6) 以下程序段的运行结果为 。C int num[]={1,2,3,4,5,6,7,8,9},*pnum=&num[2]; pnum++; ++pnum; printf(\ A. 3 B. 4 C. 5 D. 6 (7) 以下程序段的运行结果为 。 B char *pstr=\ int n=0; while(*pstr++!='\\0') n++; printf(\ A. 12 B. 14 C. 16 D. 不确定 (8) 以下程序段的运行结果为 。B int num[9]={1,2,3,4,5,6,7,8,9},*p; p=num; *(p+1)=0; printf(\
正在阅读:
C语言习题有答案曹10-09
备孕问题06-08
有关铁山行散文03-30
2015年初级经济师商业考点:国际航空进口货运流程(必备资料)07-27
草酸二乙酯的安全技术说明书Microsoft Word 文档(3)03-02
最新苏教版心理健康教育教案1-13课06-08
第二单元 胶体的性质及其应用 学案01-13
水文与水资源毕业论文06-08
PSI-SI基本概念表结构04-27
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 习题
- 答案
- 语言