




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、学习好资料欢迎下载计算机二级考试C语言知识点总结(完全针对考试大纲)总体上必须清楚的:1)程序结构是三种:顺序结构,循环结构(三个循环结构),选择Z构(if和switch)2)读程序都要从 main()入口 ,然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择)。3)计算机的数据在电脑中保存是以二进制的形式,数据存放的位置就是他的地址4)bit是位是指为0或者1。 byte是指字节,一个字节=八个位.1B=8b5)一定要记住 二进制 与 十进制互化。101045概念常考到的:1、编译预处理不是C语言的一部分,不再运行时间。C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。2、
2、每个C语言程序中main函数是有且只有一个。3、在函数中不可以再定义函数。4、函数是一定要有输出的,他可以没有输入。5、break可用于循环结构和 switch语句。6、逗号运算符的级别最低。第一章知识点1)合法的用户标识符考查:合法的要求是由字母,数字,下划线组成。有其它元素就错了。并且第一个必须为字母或则是下划线。第一个为数字就错了。关键字不可以作为用户标识符号。main define scanf printf都不是关键字。迷惑你的地方If是可以做为用户标识符。因为 If中的第一个字母大写了,所以不是关键字。Main2)实型数据的合法形式:2.333e-1就是合法的,且数据是2.333X
3、10-1。考试口诀:e前e后必有数,e后必为整数。.3)字符数据的合法形式:sizeof'1'是字符占一个字节,"1"是字符串占两个字节(含有一个Z束符号/0)。“asf”0'的ASCII数值表示为 48, 'a'的ASCII数值是97, 'A'的ASCII数值是65。4) a整型一般是四个字节,字符型是一个字节,双精度一般是8个字节:考试时候一般会说,在16位编译系统,或者是 32位系统。碰到这种情况,不要去管,一样做题。掌握整型一般是四个字节,字符型是一个字节,双精度一般是8个字节就可以了。 5)转义字符的考查:在
4、程序中int a = 0x6d ,是把一个十六进制的数给变量a注意这里的0x必须存在。在程序中int b= 067,是一个八进制的形式。a 响铃(BEL) 007b 退格(BS) 008f 换页(FF) 012n换彳亍(LF) 010r 回车(CR) 013t水平制表(HT) 009v垂直制表(VT) 011反斜杠 092?问号字符 063'单引号字符039"双引号字符 0340 空字符(NULL) 0000ddd 任意字符三位八进制0xhh任意字符二位十六进制6)算术运算符号的优先级别:同级别的有的是从左到右,有的是从右到左。7)强制类型转换:float a=1.5 flo
5、at b=2.6一定是 (int) a不是int (a),注意类型上一定有括号的。注意(int) (a+b)和(int) a+b的区别。前是把a+b转型,后是把a转型再加b。8)表达式的考查:是表达式就一定有数值。赋值表达式:表达式数值是最左边的数值,a=b=5;该表达式为5,常量不可以赋值。5=5自加、自减表达式:假设a=5;a=+a (是为6) ;a=5; b=a+ (b为5,a=6);考试口诀:+在前先加后用,+在后先用后加。逗号表达式:优先级别最低;表达式的数值逗号最右边的那个表达式的数值。5 3 6 b= (c=a+3, d=c+5, 4)的表达式的数值就是 4。9)位运算的考查:会
6、有一到二题考试题目。总的处理方法:几乎所有的位运算的题目都要按这个流程来处理(先把十进制变成二进制再变成十进制)。步骤 1: int a = 6, b; 00000001b = a>>2;这种题目的计算是先要把a的十进制6化成二进制,再做位运算。0110011000 步骤2: 一定要记住, 步骤3:在没有舍去数据的时候,<<左移一位表示乘以 2; >>右移一位表示除以 2。10) 018的数值是非法的,八进制是没有 8的,逢8进1。0xt9 11) %符号两边要求是整数。不是整数就错了。7%26/412)两种取整丢小数的情况:1、int a =1.6 ;2、
7、 (int)a;第二章知识点1) printf函数的格式考查:%d对应整型;%c对应字符;%f对应单精度等等。宽度的,左对齐等修饰。%ld 对应 long int; %lf 对应 double。2) scanf函数的格式考察:注意该函数的第二个部分是 &a这样的地址,不是 a;Scanf( "d%d%*d%d "&a,&b,&c); 跳过输入的第三个数据。3) putchar ,getchar 函数的考查:char a = getchar()是没有参数的,从键盘得到你输入的一个字符给变量a。putchar( 'y')把字符y输
8、出到屏幕中。4)如何实现两个变量 x , y中数值的互换(要求背下来)不可以把 x=y ,y=x;要用中间变量 t=x; x=y; y=t。5)如何实现保留三位小数,第四位四舍五入的程序,(要求背下来)x=1.2345x=(int)(x*1000+0.5)/1000.0这个有推广的意义,注意x = (int) x这样是把小数部分去掉。第三章特别要注意:c语言中是用非0表示逻辑真的,用 0表示逻辑假的。 1)关系表达式:表达式的数值只能为 1 (表示为真),或0 (表示假) a=7>8;当关系的表达是为真的时候得到1。如9>8这个是真的,所以表达式的数值就是1;2)逻辑表达式:只能为
9、1 (表示为真),或0 (表示假)a) 共有&&并且|或者 !三种逻辑运算符号。b) ! >&&>| 优先的级别。c) 注意短路现象。考试比较喜欢考到。d) 要表示x是比0大,比10小的方法。0Vx<10是不可以的(一定记住),是先计算0<x得到的结果为1或则0;再用0,或1与10比较得到的总是真(为 1)。所以一定要用 (0<x)&&(x<10)表示比0大比10小。3)条件表达式:表达式1 ?表达式 2 :表达式 3a=3 a?b:c注意是当非0时候是表达式2的数值,当为0是就是表达式2的数值。 考试口诀:真
10、前假后。4) if语句else是与最接近的if且没有else的相组合的。5) switch 语句:a) 一定要注意 有break和没有break的差另没有break时候,只要有一个 case匹配了, 剩下的都要执行,有 break则是直接跳出了 swich语句。b) switch只可以和break 一起用,不可以和 continue用。第四章1)三种循环结构:a) for (); while(); do- while()三种。b) for循环当中必须是两个分号,千万不要忘记。c)写程序的时候一定要注意,循环一定要有结束的条件,否则成了死循环。d) do-while()循环的最后一个 while
11、();的分号一定不能够丢。(当心上机改错)2) break 和 continue 的差另U记忆方法:break:是打破的意思,(破了整个循环)所以看见break就退出真个一层循环。continue :是继续的意思,(继续循环运算),但是要结束本次循环,就是循环体内剩下的语 句不再执行,跳到循环开始,然后判断循环条件,进行新一轮的循环。3)嵌套循环就是有循环里面还有循环,这种比较复杂,要一层一层一步一步耐心的计算,一般记住 两层是处理二维数组的。4) while (c=getchar() !=' n') 和 while (c=getchar() != ' n')的
12、差别先看a = 3 != 2 和 (a=3)! =2的区别:(!二号的级另IJ高于=号所以第一个先计算3! =2)第一个a的数值是得到的1;第二个a的数值是3。考试注意点:括号在这里的重要性。第五章函数:是具有一定功能的一个程序块;1)函数的参数,返回数值(示意图):main()int a = 5,b=6,c;c = add(a,b);printf(" %d' ,c);调用函数a,b是实参整个函数得到一个数值就是Add函数的返回数值。int add (int x, int y)int z;z=x+y;return z;被调用函数x, y是形式参数函数返回数值是整型z就是这个a
13、dd函数计算后得到的结果,就是函数返回给主程序的返回数值。程序是在从上往下顺序执行,当碰到了函数add后,把a, b的数值穿给调用函数,程序暂时中断等待返回数值。当得到了返回数值后,再顺序的往下执行2) 一定要注意参数之间的传递实参和形参之间 传数值,和传地址的差别。(考试的重点)传数值的话,形参的变化不会改变实参的变化。传地址的话,形参的变化就会有可能改变实参的变化。3)函数声明的考查:一定要有:函数名,函数的返回类型,函数的参数类型。不一定要有:形参的名称。第八早指针变量的本质是用来放地址,而一般的变量是放数值的。int *p中*p和p的差别:*p可以当做变量来用;*的作用是取后面地址 p
14、里面的数值p是当作地址来使用。*p+和(*p) +的之间的差别:改错题目中很重要*p+是地址会变化。(*p) +是数值会要变化。三名主义:(考试的重点)(考了很多次)数组名:表示第一个元素的地址。数组名不可以自加,他是地址常量名。函数名:表示该函数的入口地址。字符串常量名:表示第一个字符的地址。第七章1 一维数组的重要概念:对a10这个数组的讨论。1、a表示数组名,是第一个元素的地址,也就是元素a10的地址。2、a是地址常量,所以只要出现a+,或者是a=a+2赋值的都是错误的。3、a是一维数组名,所以它是列指针,也就是说a+1是跳一列。对a33的讨论。1、a表示数组名,是第一个元素的地址,也就
15、是元素a10的地址。2、a是地址常量,所以只要出现a+,或者是a=a+2赋值的都是错误的。3、a是二维数组名,所以它是行指针,也就是说a+1是跳一行。4、a0、a1、a2也都是地址常量,不可以对它进行赋值操作,同时它们都是列指针,a0+1 ,a1+1 , a2+1 都是跳一列。5、注意a和a0、a1、a2是不同的,它们的基类型是不同的。前者是一行元素,后三者是一列元素。二维数组做题目的技巧: 如果有 a33=1,2,3,4,5,6,7,8,9这样的题目。步骤一:把他们写成:第一列 第二列 第三列a0 a123 第一行a1a456 第二行a2a789 第三行步骤二:这样作题目间很简单:*(a0+
16、1)我们就知道是第一行的第一个元素往后面跳一列,那么这里就是a01元素,所以是1。*(a1+2)我们就知道是第二行的第一个元素往后面跳二列。那么这里就是a12元素,所以是6 一定记住:只要是二维数组的题目,一定是写成如上的格式,再去做题目,这样会比较简单。数组的初始化,一维和二维的,一维可以不写,二维第二个一定要写int a=1 , 2合法。 int a4=2 , 3, 4合法。 但 int a4=2 , 3, 4非法。 二维数组中的行指针int a12;其中a现在就是一个行指针,a+1跳一行数组元素。搭配(*) p2指针a0, a1现在就是一个列指针。a0+1跳一个数组元素。搭配*p2指针数
17、组使用还有记住脱衣服法则:a2 变成 * (a+2)a23变成 * (a+2) 3再可以变成 * (* (a+2) +3)这个思想很重要!第一章C语言概述一、选择题:1、一个C程序的执行是从(A )。A本程序的main函数开始,至U main函数结束B本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C本程序的main函数开始,到本程序文件的最后一个函数结束D本程序文件的第一个函数开始,到本程序 main函数结束2、在C语言中,每个语句必须以( D )结束。A.回车符 B.冒号 C.逗号 D.分号3、C语言规定:在一个源程序中,main函数的位置(C )。A.必须在最开始B.必须在系统
18、调用的库函数的后面C.可以任意D.必须在最后4、一个C语言程序是由(B )。A. 一个主程序和若干子程序组成 B.函数组成C.若干过程组成D.若干子程序组成5、下列说法中错误的是(D )。A.主函数可以分为两个部分:主函数说明部分和主函数体B.主函数可以调用任何非主函数的其他函数C.任何非主函数可以调用其他任何非主函数D.程序可以从任何非主函数开始执行6、用C语言编写的源文件经过编译,若没有产生编译错误,则系统将 (C )。A.生成可执行目标文件 B.生成目标文件C.输出运行结果D.自动保存源文件二、填空题:1、C语言只有32个关键字和 9 种控制语句。2、每个源程序有且只有一个main 函数
19、,系统总是从该函数开始执行C语言程序。3、C语言程序的注释可以出现在程序中的任何地方,它总是以 *符号作为开始标记,以 */符号作为结束标记。4、C语言中,输入操作是由库函数scanf完成的,输出操作是由库函数 printf完成的。5、系统默认的C语言源程序文件的扩展名是.c ,经过编译后生成的目标文件的扩展名是.obj ,经过连接后生成的可执行文件的扩展名是.exe 。6、C语言的标识符只能由字母、数字和 下划线三种字符组成。第三章数据类型、运算符和表达式一、选择题:1、以下选项中,不正确的 C语言浮点型常量是( C )。A. 160. B. 0.12 C. 2e4.2 D. 0.02、以下
20、选项中,(D )是不正确的 C语言字符型常量。A.'a' B. 'x41' C. '101 D. "a"3、在C语言中,字符型数据在计算机内存中,以字符的( C )形式存储。A. 原码 B.反码 C. ASCII码 D. BCD码4、若x、i、j和k都是int型变量,则计算下面表达式后,x的值是(C )。x= (i=4, j=16, k=32)A. 4 B. 16C.32D.525、算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为(B )。A.算术运算、赋值运算、关系运算B.算术运算、关系运算、赋值运算C.关系运算、赋值
21、运算、算术运算 D.关系运算、算术运算、赋值运算6、若有代数式,则不正确的C语言表达式是(C )。A.a/b/c*e*3 B. 3*a*e/b/cC.3*a*e/b*c D. a*e/c/b*37、表达式!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=a>b)&&(n=c>d)后,m,n的值是(A)。A. 0,0 B. 0,1 C. 1,0 D. 1,19、设有语句int a=3;,则执行了语句a+=a-=a*=a;后,变量a的值
22、是(B )。A. 3 B. 0 C. 9 D. -1210、在以下一组运算符中,优先级最低的运算符是(D )。A. *B. !=C. +D.=11、设整型变量 i值为2,表达式(+i)+(+i)+(+i)的结果是(B )。A. 6B. 12C. 15D.表达式出错12、若已定义 x和y为double类型,则表达式x=1 , y=x+3/2的值是(C )。A. 1 B. 2 C. 2.0 D. 2.513、sizeof (double)的结果值是(A )。A. 8 B. 4 C. 2D.出错14、设 a=1,b=2 , c=3,d=4,则表达式:a<b? a : c<d? a : d
23、的结果为(D )。A. 4 B. 3 C. 2D. 115、设a为整型变量,不能正确表达数学关系:10<a<15的C语言表达式是(A )。A. 10<a<15B. a= =11| a= =12 | a= =13 | a= =14C. a>10 && a<15D. !(a<=10) && !(a>=15)16、设f是实型变量,下列表达式中不是逗号表达式的是(D )。A. f= 3.2, 1.0 B. f>0, f<10 C. f=2.0, f>0 D. f=(3.2, 1.0)17、 表达式18/4
24、*sqrt(4.0)/8值的数据类型是( C )。A. int B. float C. double D.不确定18、已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句 C2=' A' +' 6' - '3' ;Bc2 中的值是(A )。A. D B. 68 C.不确定的值D. C19、以下用户标识符中,合法的是( B )。A. int B. nit C. 123 D. a+b20、C语言中,要求运算对象只能为整数的运算符是( A )。A. % B. / C. > D. *21、若有说明语句:char c='72
25、39;则变量c在内存占用的字节数是( A )。A. 1B. 2C. 3D. 422、字符串"ABC"在内存占用的字节数是( B )。A. 3B. 4C. 6D. 823、要为字符型变量a赋初值,下列语句中哪一个是正确的( B )。A. char a="3" B. char a= ' 3'C;. char a=%; D. char a=*;24、下列不正确的转义字符是( C )。A. B. ' C. 074 D. 0二、填空题:1、C语言中的逻辑值“真”是用 1表示的,逻辑值“假”是用 0表示的。2、若x和n都是int型变量,且x的
26、初值为12, n的初值为5,则计算表达式 x%=(n%=2) 后x的值为 0 。3、设 c='w',a=1,b=2,d=-5,则表达式 x'+1>c, 'y'!=c+2, -a巧*b<=d+1, b=a=2 的值分别为1、0、1、1。4、设 float x=2.5,y=4.7; int a=7;,表达式 x+a%3*(int)(x+y)%2/4 的值为 2.5 。5、判断变量 a、b的值均不为 0的逻辑表达式为 a!=0&&b!=0。6、求解赋值表达式a=(b=10)%(c=6),表达式值、a、b、c的值依次为4,4,10,6
27、 。7、求解逗号表达式x=a=3,6*a后,表达式值、x、a的值依次为18,3,3。8、数学式a/(b*c)的C语言表达式a/b/c 。三、编程题:1、设长方形的高为1.5,宽为2.3,编程求该长方形的周长和面积。2、编写一个程序,将大写字母A转换为小写字母a。1.main()f loat x=1.5,y=2.3;printf(" areanis %6y2f2.main()char c= ' A ;printf(" %d' ,c+32);顺序结构答案一、单项选择题AADAB CCBBD二、程序改错题1 .正确的程序为# include "stdio
28、.h"main() char c ;getchar(c);putchar('007'); /* 鸣笛 */putchar();2 .正确的程序为main() int a,b,s,l;scanf("%d,%d",&a,&b);s=a*b; l=2*(a+b);printf("l=%d,s=%dn", l ,s);三、写出程序运行结果1. 682. x=4y=11四、编程题1. main() int a,b,c,sum;float ave;scanf( "d%d%d ,&a,&b,&
29、c);sum=a+b+c; ave=sum/3.0;printf( "sum=%d n” ,sum,ave);五、选做题1.void main() float a,b,temp;printf("input a and b:");scanf("%d,%d",&a ,&b);temp = a; a = b; b = temp; printf("a=%d , b=%dn", a , b);选择结构答案一、单项选择题1.B 2.A 3.D 4.C 5.D 6.B 7.C二、填空题1. 5545 546 342. 40
30、3. VeryGoodGood VeryGood Fail Pass Pass三、阅读程序,写出运行结果1. 10, 4, 3;-1361四、程序设计题1. main() int a,b,x,y;scanf( " %d %d' ,&a,&b);x=a*a+b*b;if(x>100)y=x/100; prin tf( " %d' ,y); else printf( " %d' ,a+b);2. if结构main() float t;char c;printf( "input score,max as 1冏0:)
31、;scanf( " f” ,&t);if(t>=90) ch= ,A ;else if(t>=80)ch='B';else if(t>=70)ch='C';else if(t>=60)ch='D';else ch= ' E'; printf( " Grade=%d ,ch);switch结构main()float t;char c;printf( "input score,max as 1r00:);scanf(" f",&t);switch
32、(t/10) case 10:case 9: ch='A;break;case 8: ch='B'break;case 7: ch='C'break;case 6: ch='D'break;case 5: ch='E'; printf( " Grade=%d ,ch);五、选做题1. main() int a,b,c,t;scanf("d%d%d ,&a,&b,&c);if(a<b)t=a;a=b;b=t; if(a<c)t=a;a=c;c=t; if(b<c)
33、t=b;b=c;c=t; printf( "%d,%d,%d ,a,b,c);2. switch(s>0)&&(s<=10)case 1: switch (s>=3)&&(s<=6)3. case 1: x=2; break;case 0: switch (s>1)|(s>8) case 1: x=3; break;case 0: x=1; break; break;case 0: x=0; break;循环结构答案一、选择题1. B 2.A 3.A 4.C 5.A 6.B 7.A 8.C 9.D 10.D二、填空题
34、1. x1 x1/2-22. ch=getchar() ch>=' A &&ch<=' Z'3. s=s+t*i t=-t三、阅读下列程序,写出程序运行的输出结果1. 8522. 89213. 54. SUM=2468四、程序改错1.main() int i=200,n=0;/*n 用来记录每行已打印数的个数*/while(i<=300)if(i%7=0) /break;printf("%5d",i); n=n+1;if(n=5)/* 满 5 个换行 */ printf("n"); n=0; i+
35、; 2). main() int i,s=0,t=1;for(i=1;i<=7;i+) t=t*i; s=s+t; printf("sum=%dn",s);五、程序设计题1. main()int x,g,s,b;for(x=100;x<1000;x+) b=x/100;s=x%100/10;g=x%10; if(g*g*g+s*s*s+b*b*b)=x) printf("% d ,x); 2. main() int i,s=0,f=1;for(i=2;i<80;i+)s=s+f*(i-1)/i; f=-f; n” ,s);六、选做题1 . mai
36、n() float s=0,m=2.0,n=1.0,p;int i;for(i=1;i<=20;i+)s=s+m/n; p=m; m=m+n; n=p; n” ,s);2 .#include <stdio.h>main() int i,j,k,s=1;for(i=1;i<=20;i+)for(j=1;j<=50;j+) k=100-i*5-j*2;if(k>=0) printf( "2d %2d %2d” ,i,j,k);s=s+1;if(s%5=0) printf( n"");第7章数组习题A卷1 .单项选择题(1) int
37、a4=5,3,8,9;其中 a3的值为()。DA. 5B. 3C. 8D. 9(2)以下4个字符串函数中,()所在的头文彳与其他 3个不同。AA. gets B. strcpy C. strlen D. strcmp(3)以下4个数组定义中,()是错误的。DA. int a7; B. #define N 5 long bN; C. char c5; D. int n,dn;(4)对字符数组进彳T初始化,()形式是错误。BD. charA. char c1 ='1', '2', '3' B. char c2 =123; C. char c3 = &
38、#39;1', '2', '3', ''0'c4 ="123"(5)在数组中,数组名表示( A.数组第1个元素的首地址 C.数组所有元素的首地址)。AB.数组第2个元素的首地址D.数组最后1个元素的首地址(6)若有以下数组说明,则数值最小的和最大的元素下标分别是()。Bint 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的表达式是()。 Dint a12 =1,2,3,4,5,6,7,8,9,10,
39、11,12; char c= ' a' , d, g ;A. ag-c B. a4 C. a'd'-'c' D. a'd'-c(8)设有定义:char s12 = "string" 则 printf( "%dn",strlen(s);的输出是()。AA. 6 B. 7 C. 11 D. 12(9)设有定义:char s12 = "string"贝U printf("%dn ", sizeof(s);的输出是()。DA. 6B. 7C. 11D. 12(
40、10)合法的数组定义是( A. char a = "string " a =0,1,2,3,4,5(11)合法的数组定义是(A. int a3 =0,1,2,3,4,5;)。AB. int a5 =0,1,2,3,4,5;)。DB. int a 3 =0,1,2,3,4;C. char a= "string " ; D. charC. int a23=0,1,2,3,4,5,6;(12)下列语句中,正确的是A. char a3 ='abc', '1'D. int a23=0,1,2,3,4,5,;()。DB. char a
41、 3 ='abc', '1'C. char a3 ='a', "1"D. char a 3 = "a", "1"(13)下列定义的字符数组中,输出 printf("%sn", str2);的输出是()。Cstatic str320 = "basic", "foxpro", "windows"A. basic B. foxpro C. windows D.输出语句出错(14)下列各语句定义了数组,其中哪一个是不
42、正确的()。CA. 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=1,2,3,4,5,6,值为6的数组元素是()。BA. a32B. a21 C. a12D. a23(16)下面的程序中哪一行有错误()。D#include <stdio.h> main()第A行float array5=0.0;int i;for(i=0;i<5
43、;i+)scanf("%f",&arrayi);for(i=1;i<5;i+)array0=array0+arrayi; 第 B 行printf("%fn",array0); 第 C 行A.第A行 B.第B行 C.第C行 D.没有(17)下面哪一项是不正确的字符串赋值或赋初值的方式()。CA. char *str; str="string"B. char str7='s','t','r','i','n','g'C. char
44、str110;str1="string"D. char str1="string",str2="12345678"(18)若有以下说明和语句,则输出结果是哪一项()。C(strlen(s)为求字符串s的长度的函数)char s12="a book!"printf("%d",strlen(s);A. 12 B. 8 C. 7 D. 11(19)若有以下说明和语句,则输出结果是()。B(strlen(s)为求字符串s的长度的函数)char sp尸"tv0willn"printf(
45、"%d",strlen(sp);A. 14 B. 3 C. 9 D.字符串中有非法字符(20)若有以下说明和语句,则输出结果是()。Cchar str=""c:abc.dat""printf("%s",str);A.字符串中有非法字符B. "c:abc.dat" C. "c:abc.dat" D. "c:abc.dat"2.填空题1 1) C语言中,数组的各元素必须具有相同的,元素的下标下限为,下标必须是正整数、0、或者 。但在程序执行过程中,不检查元素下
46、标是否。数据类型,0,符号常量,越界2 2) C语言中,数组在内存中占一片的存储区,由代表它的首地址。数组名是一个常量,不能对它进行赋值运算。连续 ,数组名,地址 执行 static int b5, a 3 =1,2,3,4,5,6; 后,b4 =, a12 =。 0,6(4)设有定义语句static int a34 =1,2,3; 则 a10值为,a11值为,a21的值为。2,0,0(5)如定义语句为char a = "windows",b = "95",语句 printf("%s",strcat(a,b);的输出结果为。Windo
47、ws95(6)根据以下说明,写出正确的说明语句:men是一个有10个整型元素的数组。step是一个有4个实型元素的数组,元素值分别为1.9, -2.33, 0, 20.6。grid是一个二维数组,共有4行,10列整型元素。int mesh10; float step4 = 1.9, -2.33, 0, 20.6; int grid410;array是一个一维整形数组,有10个元素,前6个元素的初值是9,4,7,49,32,-5,正确的说明语 句为:。该数组下标的取值范围是从_到(从小到大)。用scanf函数输入数组的第二个元素表示为:。用赋值语句把39存入第一个元素表示为:。把第六个和第四个元
48、素之和存入第一个元素表示为:。int array10 = 9,4,7,49,32,-5;0 9 scanf("%d",&array1); array0 = 39; array0=array5+array3;(8)写出以下初始化数组的长度:int chn3;数组chn的长度为。float isa=1.0,2.0,3.0,4.0,5.0;数组isa的长度为 。int doom8;数组doom的长度为 。float pci42;数组pci的长 度为。int ast33;数组ast的长度为。int att34;数组att的长度为 。float de叩3=1,4,7,2,5,
49、3,6,9;数组 dell 的长度为。6 20 16 32 18 2436(9)若有以下整型的a数组,数组元素和它们得值如下所示:数组元素:a0 a1a2 a3 a4 a5 a6 a7 a8 a9元素的值:941282107513请写出对该数组的说明,并赋以上初值。该数组的最小下标值为,最大下标值为一。写出下面各式的值:aa9的值为 ;aa4+a8的值为 。int a10=9,4,12,8,2,10,7,5,1,3;0988(10)字符串"abn012/""的长度为。103 .判断题(X ) (1) C允许对数组的大小作动态定义,即可用变量定义数组的大小。(X )
50、 (2)字符数组不要求它的最后一个字符为0',甚至可以不包含0'。(x ) (3)数组定义int a10;也可以写成int a(10);。(,)(4)在对全部数组元素赋初值时,可以不指定数组长度。(X ) (5)定义s为5X6(5行6歹U)的数组可写成float a5,6;(,)(6)数组定义int a10;表示数组名为a,此数组有10个元素。(x )(7)数组定义int a10;表示数组名为a,此数组有10个元素,第10个元素为a10。( , )(8) static char c= "a book" ; 与 static char c= "a b
51、ook" 等价。(x ) (9) static char c='a' ,' ','b','o','o','k',''0'与 static char c='a' ,' ' ,'b','o','o','k'等价。(x ) (10)设已有说明:static char c110,c210;下面程序片段是合法的。c1= "book"c2=c1;4 .程序填空题(
52、1)输入20个数,输出它们的平均值,输出与平均值之差的绝对值为最小的数组元素。请 填空。#include <stdio.h>void main()float a20,pjz=0,s,t; int i,k;for(i=0;i<20;i+) pjz+=ai;s=fabs(a0-pjz);for(i=1;i<20;i+) if(fabs(ai-pjz)<s)s=fabs(ai-pjz); t=ai;for(i=0;i<20;i+) scanf(" %f” ,&ai); pjz/=20; printf(n” ,piz,t); " %f,%
53、f(2)以下程序以每行10个数据的形式输出a数组,请填空。void main()int a50,i;printf("输入50个整数:");for(i=0; i<50; i+) scanf( "%d",);for(i=1; i<=50; i+) if()printf( "%3dn",);printf( "%3d",ai-1);&ai i%10=0ai-1(3)下面程序的功能是输出数组 s中最大元素的下标,请填空。void main()int k, p;int s尸1,-9,7,2,-10,3;fo
54、r(p=0,k=p; p<6; p+)if(sp>sk);printf("%dn" ,k);k=p(4)这个程序输入了 20个数存放在一个数组中,并且输出其中最大者与最小者、20个数的 和及它们的平均值。请填空。void main()char array ;int max,min,average,sum;int i;for(i=0;i< ;i+)printf("请输入第%d个数:",i+1);scanf("%d",);max=array0;min=array0;for(i=0;i<=;i+)if(max<
55、arrayi)if(min>arrayi)sum=;average =;printf("20个数中最大值是%d,",max);printf("最小值是 %d,",min);printf("和是 d,",sum);printf("平均值是 %d.n",average);2020&arrayi19max=arrayi;min=arrayi;sum+arrayi sum/20B卷5.阅读程序,分析程序的功能。#include <stdio.h>#include <string.h>v
56、oid main()char s80;int i ;for(i=0; i<80; i+)si=getchar();if(si='n') break;si='0'i=0;while(si) putchar(si+); putchar( n");从键盘输入一个字符串,并逐一输出(2)#include <stdio.h>#include <string.h>void main()char str1080, c80;int i;for(i=0; i<10; i+)gets(stri);strcpy(c, str0);for(
57、i=1; i<10; i+)if(strlen(c) <strlen(stri) strcpy(c,stri);printf( "%sn", c);printf( "%dn", strlen (c);从键盘输入若干字符串,找到其中最长的一个输出及它的长度#include <stdio.h>#include <string.h>void main()char a1080, c80;int i, j, k;for(i=0; i<10; i+) gets(ai);for(i=0; i<9; i+)k=i ;for(j=i+1; j<10; j+)if(strcmp (a j, ak)<0) k=j; if(k!=i )strcpy(c,ai) ;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 年度钢筋供应合同2025
- 蚕茧产业订购及供货合同
- 财产分割合同细则
- 网络广告合作合同标准
- 食品加工合同标准格式
- 仓储租赁委托合同模板范本
- 土地使用权转让相关合同补充条款
- 农业合作社成员权益转让合同
- 大连生猪买卖合同协议(16篇)
- 2025年医院药品供应外包合同模板
- 无人机法律法规与安全飞行 第2版空域管理
- 我的小学生活
- 团会:纪念一二九运动
- 《商务沟通-策略、方法与案例》课件 第三章 书面沟通
- 2024具身大模型关键技术与应用报告-哈尔滨工业大学
- 提高瓦屋面太阳能板安装一次验收合格率
- 2024上海市房屋租赁合同范本下载
- 安徽省六安市裕安区六安市独山中学2024-2025学年高一上学期11月期中生物试题(含答案)
- CSC资助出国博士联合培养研修计划英文-research-plan
- 我的物品我做主班会
- 《外科护理学(第七版)》考试复习题库-上(单选题)
评论
0/150
提交评论