C语言试题及答案

上传人:z****2 文档编号:185587429 上传时间:2023-02-04 格式:DOCX 页数:35 大小:58.11KB
返回 下载 相关 举报
C语言试题及答案_第1页
第1页 / 共35页
C语言试题及答案_第2页
第2页 / 共35页
C语言试题及答案_第3页
第3页 / 共35页
点击查看更多>>
资源描述
大学C语言考试题库第 1 章 C 语言概述习题1. 单项选择题(1) C语言是在 B语言的基础上产生的。A. AB. BC. DD. E(2) 在C语言中,每个语句必须以D 结束。A. 回车符B.冒号C.逗号D.分号(3) 标识符和关键字间,要用C隔开。A.回车符B.冒号C.空格D.分号(4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( 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 语言程序由子程序组成D. C 语言程序由过程组成(7) 下列说法中错误的是( D )。A. 主函数可以分为两个部分:主函数说明部分和主函数体B. 主函数可以调用任何非主函数的其他函数C. 任何非主函数可以调用其他任何非主函数D. 程序可以从任何非主函数开始执行2. 填空题(1) C语言只有个关键字和 种控制语句。(2) C语言是一种“中级语言”,既具有高级语言的特点又具有低级语言 的特点:既适合于开发系统软件又适合于编写应用程序。(3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。(4) 在C语言程序中允许岀现的字符集是ASCII码字符集。(5) C语言的程序中有特殊含义的英语单词称为保留字 。(6) C语言标识符的长度是前8位有效。(7) C语言中,标识符的定义规则是以字母或下划线为开头。(8) C语言程序的注释可以出现在程序中的任何地方,它总是以/*符号作为开始标记,以*/符号作为结束标记。第 2 章 数据类型运算符和表达式习题1. 单项选择题(1) 以下选项中,正确的C语言整型常量是 D 。A. 32L B. 510000 C. -1.00 D. 567(2) 以下选项中,是不正确的C语言字符型常量。A. aB. x41C. 101D. a(3) 在C语言中,字符型数据在计算机内存中,以字符的C 形式存储。A. 原码B. 反码C. ASCII码 D. BCD码(4) 字符串的结束标志是 C 。A. 0B. 0C. 0D. 0(5) 算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为_丄。A.算术运算、赋值运算、关系运算B. 算术运算、关系运算、赋值运算C.关系运算、赋值运算、算术运算D. 关系运算、算术运算、赋值运算(6) 逻辑运算符中,运算优先级按从高到低依次为D 。A. &, !, | B. |, &, ! C. &, |, ! D. !, &, |(7) 表达式!x|a=b等效于D 。A. !(x|a)=b)B. !(x|y)=bC. !(x|(a=b) D. (!x)|(a=b)(8) 设整型变量m,n,a,b,c,d均为1,执行(m=ab)& (n=cd)后,m,n的值是 A 。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 的值依次为 A 。A. 2,3B. 2,0C. 3,0D. 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. 表达式出错(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 的结果为 DA. 4 B. 3 C. 2 D. 1(16) 设a为整型变量,不能正确表达数学关系:10a15的C语言表达式是_A. 10a15B. a= =11| a= =12 | a= =13 | a= =14C. a10 & a15D. !(a=10) & !(a=15)(17) 设f是实型变量,下列表达式中不是逗号表达式的是D 。A. f= 3.2, 1.0 B. f0, f10 C. f=2.0, f0 D. f=(3.2, 1.0)(18) 设ch是char型变量,其值为A,则下面表达式的值是B 。ch=(ch=A& ch=Z)? (ch+32):chA. A B. a C. Z D. Z(19) 以下运算符中,结合性与其他运算符不同的是A 。A. +B. %C. /D. +(20) 以下用户标识符中,合法的是B 。A. intB. nitC. 123D. a+b(21) C语言中,要求运算对象只能为整数的运算符是 。A. %B. /C. D. *(22) PC机中,n在内存占用的字节数是A 。A. 1 B. 2 C. 3 D. 4(23) 字符串ABC在内存占用的字节数是B。A. 3 B. 4 C. 6 D. 8(24) 要为字符型变量a赋初值,下列语句中哪一个是正确的 。A. char a=3; B. char a=3; C. char a=%; D. char a=*;(25) 下列不正确的转义字符是C 。A. B. C. 074 D. 02. 填空题(1) C语言中的逻辑值“真”是用 非0表示的,逻辑值“假”是用表示的。(2) 符号常量的定义方法是 #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=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) prin tf(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 97C. 97,aD. 97 a(3) scanf(%c, &a);若要给变量输入大写字母A,则以下正确的输入是B 。A. A CR B. A CR C. A CRD. 以上都不对(4) 若一个int类型的数据占2字节,则程序段:intx=T;printf(%u,%d,x,x);的输出结果是A 。A. 65535, -1 B. -1,65535 C. 32767, 32768 D. 32768,32767(5) 在TC中,get char、put char、prin tf、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,&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) 以下程序的功能是,从键盘输入一个字符并鸣笛输出。#include stdio.hmian() /main() char c /char c; getchar(c);/c = getchar();putchar(007) ;/*鸣笛*/c=putchar(); /putchar(c);/(2) 以下程序的功能是,输入长方形的两边长(边长可以取整数和实数),输出它的面积和周长main /main()int a,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);运行时输入:输出:68(2)main()int a=3,b=5,x,y;x=a+1, b+6;y=(a+1, b+6);printf(x=%dny=%dn,x,y);输出:x=4y=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) 下面的程序片段所表示的数学函数关系是_Aif(xO) y= -1;else if(x0)y=1;else y=0;-1G0)(zO)A. J = 0)(A0)0Z)-1仅O)C. y = b) printf(%dn,a); printf(%dn,b);B. printf(%dn,b); if(ab) printf(%dn,a);C. if(ab) printf(%dn,a); else printf(%dn,b);D. if(ab) printf(%dn,a); printf(%dn,b);(5) 以下程序段的输出结果一Aint x=5;if(x0) y=1;else if(x=0) y=0;else y= 1;printf(%d,y);A. 1B. 5C. 0D. 2(6) 程序段 int x=5,y=8,max; max=(xy)?x:y; printf(%d,max);的输出结果是B 。A. 5B. 8C. 3D. 13(7) 程序段 int x=3,a=1;switch(x) case 4: a+;case 3: a+;case 2: a+;case 1: a+; printf (d,a);的输出结果是 D 。A. 1B. 2C. 3D. 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&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)(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: k+=1;case 2: k+=2;default: k+=3;printf(“%d”,k);void main ( )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;输出: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. 单项选择题(l) for(i=l;i9;i+=l);该循环共执行了 B 次。A. 7 B. 8 C. 9 D. 10(2) in t a=2;while(a=0) a;该循环共执行了 A 次。A. 0B. 1C. 2D. 3(3) 执行完循环 for(i=l;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) 语句,在循环条件初次判断为假,还会执行一次循环体。A. for B. while C. do-while D. 以上都不是(6) 循环结构的特点是C 。A. 从上至下,逐个执行B. 根据判断条件,执行其中一个分支C. 满足条件时反复执行循环体 D. 以上都对(7) i、j已定义为int类型,则以下程序段中内循环体的执行次数一。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=1, x=l;循环语句 while(a10) x+; a+;的循环执行D 。A. 无限次 B. 不确定次 C. 10 次 D. 9 次(10) 下列程序段执行后s的值为 _。int i=1, s=0; while(i+) if(!(i%3) break ; else s+=iA. 2 B. 3 C. 6 D. 以上均不是2. 填空题(1) 三种循环语句是 等价 价的。(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 个实数,输出其中的最大值、最小值。#include void main( )int n,i;float no1,nmax,nmin;scanf(%d,&n); scanf(%f,&no1);nmax=no1;nmin二no1 :for(i=2;inmax) nmax=no1;if(nolnmin) nmin二nol:printf(MAX=%f MIN=%fn,nmax,nmin):(6) 输入若干个字符,分别统计数字字符的个数、英文字母的个数,当输入换行符时输出统计结果,运行结束。#include stdio.hvoid main( )char ch:int s1=0.s2=0 :while(ch二getchar() )!=n)if(ch=0&ch=9) sl+:if(ch=a &ch0: y-)if(y%3=0) printf(%d, -y):continue:输出:852(2) main()int k,n,m:while(k+=n)m*=2:printf(%dn,m):输出:1024(3)void main ( ) int i=5:doswitch (i%2)case 4: i-: break:case 6: i-: continuen=l0:m=l:k=l:i- ; i- ;printf(i=%d , i); while(i0);输出:i=3 i=1 i=-1(4)#include void main( )int k=0; char c=A;doswitch(c+)case A: k+; break;case B: k-;case C: k+=2; break;case D: k=k%2; break;case E: k=k*10; breakdefault: k=k/3;k+;while(cG);printf(k=%dn, k);输出: 8(5)输入数据: 2,4#include 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);输出: 24684. 程序改错(1) 以下程序是显示200,300所有能被 7 整除的数,每行显示 5 个数,此程序有 5 处错main()int i,n=0; /*n 用来记录每行已打印数的个数*/while(i300) /while(i = 200)磋砣莫遗韶光老,人生惟有读书好。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+)s=0; /去掉该语句t=t*i;s=s+t;printf(sum=dn,s); /printf(“sum=%ld”,s);第 6 章 函数习题1. 单项选择题(1)C语言总是从函数开始执行。A. mainB.处于最前的 C.处于最后的 D.随机选一个(2)函数在定义时,省略函数类型说明符,则该函数值的类型为 。磋砣莫遗韶光老,人生惟有读书好。A. int B. float C. long D. double(2) 以下_函数,真正地没有返回值。A. int a()int a=2;return (a); B. void b()printf(c);C. int a()int a=2;return a;D. 以上都是(3) 在C语言中,有关函数的说法,以下正确的 。A. 函数可嵌套定义,也可嵌套调用 B. 函数可嵌套定义,但不可嵌套调用C. 函数不可嵌套定义,但可嵌套调用 D. 函数不可嵌套定义,也不可嵌套调用(4) 以下函数调用语句中,含有实参的个数为B 。fun(2,3),(4,5+6,7);A. 1B. 2C. 5D. 6(5) 函数调用可以在 D 。A. 函数表达式中B. 函数语句中C. 函数参数中D. 以上都是(6) 被调函数返回给主调函数的值称为C 。A. 形参B. 实参C. 返回值 D. 参数(7) D,可以不进行函数类型说明。A. 被调函数的返回值是整型或字符型时B. 被调函数的定义在主调函数定义之前时C. 在所有函数定义前,已在函数外预先说明了被调函数类型 D. 以上都是(8) 被调函数通过D语句,将值返回给主调函数。A. ifB. forC. whileD. return(9) 被调函数调用结束后,返回到B 。A.主调函数中该被调函数调用语句处B. 主函数中该被调函数调用语句处C. 主调函数中该被调函数调用语句的前一语句D. 主调函数中该被调函数调用语句的后一语句(10) 以下对C语言函数的有关描述中,正确的是 A 。A. 在 C 中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参B. C 函数既可以嵌套定义又可递归调用C. 函数必须有返回值,否则不能使用函数D. C程序中有调用关系的所有函数必须放在同一个源程序文件中(11) C语言中函数的隐含存储类型是 A 。A. auto B. static C. extern D. 无存储类型书籍是人类知识的总结。书籍是全世界的营养品。 莎士比亚磋砣莫遗韶光老,人生惟有读书好。(12) 能把函数处理结果的两个数据返回给主调函数,在下面的方法中不正确的是_。A. return 这两个数B. 形参用两个元素的数组C. 形参用两个这种数据类型的指针D. 用两个全局变量2. 填空题(1) 变量的作用域主要取决于变量定义的位子,变量的生存期既取决于变量存储类型,又取决于变量存储方式 。(2) 说明变量时,若省略存储类型符,系统默认其为 整形存储类别,该存储类别的类型符为:int 。(3) 静态型局部变量的作用域是静态局部变量定义的复合语句或函数体内,牛存期是 整个程序运彳期内。(4) 函数中的形参和调用时的实参都是数组名时,传递方式,都是变量时,传递方式为值传递 。(5) 函数的形式参数的作用域为整个函数体内,全局的外部变量和函数体内定义的局部变量重名时, 函数体内定义的局部变量优先。(6) 若自定义函数要求返回一个值,则应在该函数体中有一条ret urn语句,若自定义函数要求不返回一个值,则应在该函数说明时加一个类型说明符void 。(7) 若函数的形式参数是指针类型,则实参可以是数组名、地址或指针变量。(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);printf(n);void sort( floa t *p, int n )书籍是人类知识的总结。书籍是全世界的营养品。一一莎士比亚磋砣莫遗韶光老,人生惟有读书好。int i,j,k; float t;for(i=0;in-1;i+)k=i;for(j=i+1;jvoid find(float *p, float *max, float *min, int n)int k;float t;*max=*p; *min = *p; for(k=1;kn;k+)t=*(p+k);if(t*max) *max二t;if(t*min) *min=t;3. 写出下列程序运行结果:(1)printf(%dn,p);main()int fun(int a,int b)int i=1,p;p=fun(i,i+1);int f书籍是人类知识的总结。书籍是全世界的营养品。莎士比亚if(ab)f=-1;f=1;else if(a=b)f=0;elsereturn f;输出:-1(2)键盘输入 abcdef(4)#include #include intvoid fun( )char c ;if(c=getchar( )!=n)fun( ) ;putchar(c);void main( ) fun( ); 输出:fedcba(3)#include #define C 5int x=1,y=C;void main( )int x;x=y+; printf(%d %dn, x,y);if(x4)x ; x=+y; printf(%d %dn,x,y) ; 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) ;输出: 4,2,8,9(5)unsigned fun6(unsigned num)unsigned k=1;do k*=num%10; num/=10; while(num);return k;void main( )x+=y-;unsigned n=26;printf(%d %dn,x,y); printf(%dn, fun6(n);输出:12输出:5 67 712 6第7章 数组习题1. 单项选择题(1) int a4 = 5,3,8,9;其中 a3的值为(D )。A. 5B. 3C. 8D. 9(2) 以下 4 个字符串函数中,( A )所在的头文件与其他 3 个不同。A. getsB. strcpyC. strlenD. 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;(5) 在数组中,数组名表示( A )。A.数组第1个元素的首地址B.数组第2个元素的首地址C.数组所有元素的首地址D.数组最后1个元素的首地址(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) 若有以下说明,则数值为 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. 6B. 7C.11D.12(9) 设有定义:char s12 = string;则 printf(%dn : sizeof(s);的输出是(B )。A. 6B. 7C.11D.12(10) 合法的数组定义是( 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. char 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;C. float x2 =1,2,4,6,8,10; D. int m3=1,2,3,4,5,6;(15) 数组定义为int a32 = l,2,3,4,5,6,值为6的数组元素是(B )。A. a32B. a21C. a12D. a232. 填空题(1) C语言中,数组的各元素必须具有相同的类型,元素的下标下限为,下标必须是正整数、0、或者常量。但在稈序执行过稈中,不检杳元素下标是否越界。(2) C语言中,数组在内存中占一片 连续 的存储区,由 数组名 代表它的首地址。数组名是一个常量,不能对它进行赋值运算。(3) 执行 static int b5, a 3二1,2,3,4,5,6;后,b4 = 0, a12 =6。 设有定义语句 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 float a20,pjz=0,s,t; int i,k;#include math.hfor(i=0: i 20: i+) scanf( “f” .&ai):void main( )for(i=0;i20;i+) pjz+=ai;书籍是人类知识的总结。书籍是全世界的营养品。 莎士比亚pjz/=20:s=fabs(ai-pjz); t=ai;s=fabs(a0-pjz);for(i=l:i20:i+)printf( “f,%f”,pjz,t);if(fabs(ai-pjz) sk) k = p :printf(%dn ,k):3. 阅读程序,分析程序的功能。char s80:int i(1)#include stdio.h #include string.hvoid main( )for(i=0: i80: i+)分析: si=getchar( );if(si=n) break;si=0; i=0;while(si) putchar(si+);putchar(n);输入一个字符串,以回车结束,并将其原样输出。(2)#include #include void main( )char str1080, c80;int i;for(i=0; i10; i+) gets(stri);strcpy(c, str0);for(i=1; i10; i+)if(strlen(c)strlen(stri)strcpy(c,stri); printf( %sn, c);printf( %dn, strlen (c);分析:输入10 个字符串,输出10 个字符串中最长的字符串和它的长度。(3)#include k=j;if(k!=i)for(j=i+1; j10; j+)if(strcmp(aj,ak)0)#include void main( )char a1080, c80;int i, j, k;for(i=0; i10; i+)gets(ai);for(i=0; i9; i+)strcpy(c,ai) ; strcpy(ai, ak); strcpy(ak,c); / 字符串交换 for(i=0; i10; i+)k=i;puts(ai);莎士比亚磋砣莫遗韶光老,人生惟有读书好。个字符串按从小到大顺序排列并输出分析:输入10 个字符串,用选择排序算法将10(4) 阅读程序,写出运行结果。#include void main( )int a6=12,4,17,25,27,16;int b6=27,13,4,25,23,16,i,j;for(i=0;i6;i+) for(j=0;j6;j+)if(ai=bj)break;if(j6)printf(%d ,ai);printf(n);分析:按数组a中元素顺序输出与数组b中元素相同的数。输出: 4,25,27,16(5) 阅读程序,写出运行结果。#include void main( )char a8,temp; int j,k;for(j=0;j7;j+) aj=a+j;a7=0;for(j=0;j0;k-) ak=ak-1;书籍是人类知识的总结。书籍是全世界的营养品。莎士比亚(6) 阅读下列程序,写出程序运行的输出结果#include #include void main( )char str1 =*;for(int i=0;i=astr)putchar(*pstr);putchar(n);A. abc B. cba C. abcde D. edcba(5) 若有定义int a=l,*b,c;,以下不正确的是A 。A. b=aB. b=&aC. b=&a,c=*b D. c=a(6) 以下程序段的运行结果为 C 。int num=1,2,3,4,5,6,7,8,9,*pnum=&num2;pnum+;+pnum;printf(%dn,*pnum);A. 3B. 4C. 5D. 6(7) 以下程序段的运行结果为。char *pstr=My name is Tom;int n=0;while(*pstr+!=0)n+;printf(n=%dn,n);A. 12B. 14C. 16D. 不确定(8) 以下程序段的运行结果为。int num9=1,2,3,4,5,6,7,8,9,*p;p=num;*(p+1)=0;printf(%d,%d,%dn,*p,p1,(*p)+);A. 2,0,1B. 1,0,1C. 2,2,2 D. 1,1,1(9) 以下程序段的运行结果为。int a=5,*p=&a,b,*q;a=10;*p=15;q=p;*q=20;b=*q;p=&b;printf(a=%d,b=%d,*p=%d,*q=%dn,a,b,*p,*q);A. a=5,b=10,*p=15,*q=20B. a=20,b=15,*p=10,*q=5C. a=20,b=20,*p=20,*q=20D. a=15,b=15,*p=15,*q=15(10) 已知char *p,*q;,以下语句正确的是C 。A. p*5;B. p/=q;C. p+=5;D. p+=q;第9 章 结构体共用体习题1. 填空题(1)定义结构体的关键字是struct ,定义共用体的关键字是union 。(2)结构体和共用体的相同点是 都是构造类型,不同点是共用体在同一时间只能使用一个成员。(3) 若有以下定义和语句,则sizeof(a)的值是12 ,而sizeof (b)的值是20。struct tu int m; char n; int y;a;struct float p; char q; struct tu r b;(4) 设有下面结构类型说明和变量定义,则变量a在内存所占字节数是32。如果将该结构改成共用体,结果为16。struct stud char num6; int s4; double ave; a;(5) 下面程序用来输出结构体变量ex所占存储单元的字节数,请填空。struct st char name20; double score; ;main() struct st ex ; printf (ex size: %dn,sizeof( ex ); (6) 下面定义的结构体类型拟包含两个成员,其中成员变量info用来存入整形数据;成员变量link是指向自身结构体的指针,请将定义补充完整。struct node int info; struct node * link; (7) 以下程序执行后输出结果是_。main() union unsigned int n; unsigned char c; u1;u1.c=A; printf(%cn,u1.n); (8) 变量root如图所示的存储结构,其中sp是指向字符串的指针域,next是指向该结构的指针域,data用以存放整型数。请填空,完成此结构的类型说明和变量root的定义。rootsp
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑环境 > 机械电气


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

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


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