




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言复习资料5元必须清楚的:1)程序结构是三种: 顺序结构 , 循环结构(三个循环结构), 选择结构(if 和 switch)2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择)。3)计算机的数据在电脑中保存是以 二进制的形式. 数据存放的位置就是 他的地址.4)bit是位 是指为0 或者1。 byte 是指字节, 一个字节 = 八个位.5)一定要记住 二进制 如何划成 十进制。概念常考到的:、编译预处理不是C语言的一部分,不再运行时间。C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。、每个C语言程序中main函数是有且只有一个。、在函
2、数中不可以再定义函数。、算法的是一定要有输出的,他可以没有输入。、break可用于循环结构和switch语句。、逗号运算符的级别最低。第一章1)合法的用户标识符考查:合法的要求是由字母,数字,下划线组成。有其它元素就错了。并且第一个必须为字母或则是下划线。第一个为数字就错了。关键字不可以作为用户标识符号。main define scanf printf 都不是关键字。迷惑你的地方If是可以做为用户标识符。因为If中的第一个字母大写了,所以不是关键字。2)实型数据的合法形式:2.333e-1 就是合法的,且数据是2.333
3、5;10-1。考试口诀:e前e后必有数,e后必为整数。.3)字符数据的合法形式:: '1' 是字符占一个字节,"1"是字符串占两个字节(含有一个结束符号)。 '0' 的ASCII数值表示为48,'a' 的ASCII数值是97,'A'的ASCII数值是65。4) 整型一般是两个字节, 字符型是一个字节,双精度一般是4个字节:考试时候一般会说,在16位编译系统,或者是32位系统。碰到这种情况,不要去管,一样做题。掌握整型一般是两个字节, 字符型是一个字节,双精度一般是4个字节就可以了。5)转
4、义字符的考查: 在程序中 int a = 0x6d,是把一个十六进制的数给变量a 注意这里的0x必须存在。 在程序中 int a = 06d, 是一个八进制的形式。在转义字符中,x6d 才是合法的,0不能写,并且x是小写。 141 是合法的, 0是不能写的。108是非法的,因为不可以出现8。6)算术运算符号的优先级别: 同级别的有的是
5、从左到右,有的是从右到左。7)强制类型转换: 一定是 (int)a 不是 int(a),注意类型上一定有括号的。 注意(int)(a+b)和(int)a+b 的区别。 前是把a+b转型,后是把a转型再加b。8)表达式的考查: 是表达式就一定有数值。 赋值表达式:表达式数值是最左边的数值,a=b=5;该表达式为5,常量不可以赋值。 自加、自减表达式:假设a=5,+a(是为6), a+(为5);运行的机理:+a 是先把变量的数值加上1,然后把得到的数值放到变量
6、a中,然后再用这个+a表达式的数值为6,而a+是先用该表达式的数值为5,然后再把a的数值加上1为6,再放到变量a中。 进行了+a和a+后在下面的程序中再用到a的话都是变量a中的6了。 考试口诀:+在前先加后用,+在后先用后加。逗号表达式:优先级别最低 ;表达式的数值逗号最右边的那个表达式的数值。(2,3,4)的表达式的数值就是4。9)位运算的考查:会有一到二题考试题目。总的处理方法:几乎所有的位运算的题目都要按这个流程来处理(先把十进制变成二进制再变成十进制)。例1:char a = 6, b;b = a<<2; 这种题目的计算是先要把a
7、的十进制6化成二进制,再做位运算。例2:一定要记住,例3:在没有舍去数据的时候,<<左移一位表示乘以2;>>右移一位表示除以2。10)018的数值是非法的,八进制是没有8的,逢8进1。 11)%符号两边要求是整数。不是整数就错了。12)三种取整丢小数的情况:、int a =1.6; 、(int)a; &
8、#160; 、 第二章1)printf函数的格式考查: %d对应整型;%c对应字符;%f对应单精度等等。宽度的,左对齐等修饰。
9、0; %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输出到屏幕中。4)如何实现两个变量x ,y中数值的互
10、换(要求背下来) 不可以把 x=y ,y=x; 要用中间变量 t=x;x=y;y=t。5)如何实现保留三位小数,第四位四舍五入的程序,(要求背下来) 这个有推广的意义,注意 x = (int)x 这样是把小数部分去掉。
11、;第三章特别要注意:c语言中是用非0表示逻辑真的,用0表示逻辑假的。1)关系表达式: 表达式的数值只能为1(表示为真),或0(表示假) 当关系的表达是为真的时候得到1。如 9>8这个是真的,所以表达式的数值就是1;2)逻辑表达式: 只能为1(表示为真),或0(表示假)a) 共有&& | ! 三种逻辑运算符号。b)
12、!>&&>| 优先的级别。c) 注意短路现象。考试比较喜欢考到。d) 要表示 x 是比0大,比10小的方法。0<x<10是不可以的(一定记住)。是先计算0<x 得到的结果为1或则0;再用0,或1与10比较得到的总是真(为1)。所以一定要用 (0<x)&&(x<10)表示比0大比10小。3)f 语句 else 是与最接近的if且没有else
13、的相组合的。4)条件表达式: 表达式1 ?表达式2 :表达式3 注意是当非0时候是表达式2的数值,当为0是就是表达式2的数值。考试口诀:真前假后。5)switch语句:a)一定要注意 有break 和没有break的差别,书上(34页)的两个例子,没有break时候,只要有一个case匹配了,剩下的都要执行,有break则是直接跳出了swiche语句。 b)switch只可以和break一起用,不可以和continue用。
14、160; 第四章1)三种循环结构: a)for() ; while(); do- while()三种。 b)for循环当中必须是两个分号,千万不要忘记。 c)写程序的时候一定要注意,循环一定要有结束的条件,否则成了死循环。 d) do-while()循环的最后一个while(
15、);的分号一定不能够丢。(当心上机改错)2) break 和 continue的差别 记忆方法:break:是打破的意思,(破了整个循环)所以看见break就退出真个一层循环。continue:是继续的意思,(继续循环运算),但是要结束本次循环,就是循环体内剩下的语句不再执行,跳到循环开始,然后判断循环条件,进行新一轮的循环。3)嵌套循环 就是有循环里面还有循环,这种比较复杂,要一层一层一步一步耐心的计算,一般记住两层是处理二维数组的。4) while(c=getchar())!=n) 和 while(c=getchar()
16、 !=n)的差别先看a = 3 != 2 和 (a=3)!=2 的区别:(!=号的级别高于=号 所以第一个先计算 3!=2) 第一个a的数值是得到的1;第二个a的数值是3。考试注意点: 括号在这里的重要性。 第五章函数:是具有一定功能的一个程序块;1) 函数的参数,
17、返回数值(示意图): 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就是这个add函数计算后得到的结果,就是函数返回给主程序的返回数值。程序是在从上往下顺序执行,当碰到了函数add后,把a,b的数值穿给调用函数,程序暂时中断等待
18、返回数值。当得到了返回数值后,再顺序的往下执行2)一定要注意参数之间的传递 实参和形参之间 传数值,和传地址的差别。(考试的重点) 传数值的话,形参的变化不会改变实参的变化。 传地址的话,形参的变化就会有可能改变实参的变化。3)函数声明的考查:一定要有:函数名,函数的返回类型,函数的参数类型。不一定要有:形参的名称。第六章指针变量的本质是用来放地址,而一般的变量是放数值的。int *p 中
19、 *p和p的差别:*p可以当做变量来用;*的作用是取后面地址p里面的数值p是当作地址来使用。*p+ 和 (*p)+的之间的差别:改错题目中很重要 *p+是 地址会变化。 (*p)+ 是数值会要变化。
20、60; 三名主义:(考试的重点) 数组名:表示第一个元素的地址。数组名不可以自加,他是地址常量名。(考了很多次) 函数名:表示该函数的入口地址。 字符串常量名:表示第一个字符的地址。第七章1一维数组的重要概念:对a10这个数组的讨论。、a表示数组名,是第一个元素的地址,也就是元素a10的地址。、a是地址常量,所以只要出现a+,或者是a=a+2赋值的都是错误的。、a是一维数组名,所以它是列指针,也就是说a+1是跳一列。对a33的讨论。、a表示数组名,是第一个元素的地址,也就是元素a10的地址。、a是地址常量,所以只要出现a+
21、,或者是a=a+2赋值的都是错误的。、a是二维数组名,所以它是行指针,也就是说a+1是跳一行。、a0、a1、a2也都是地址常量,不可以对它进行赋值操作,同时它们都是列指针,a0+1,a1+1,a2+1都是跳一列。、注意a和a0 、a1、a2是不同的,它们的基类型是不同的。前者是一行元素,后三者是一列元素。二维数组做题目的技巧:如果有a33=1,2,3,4,5,6,7,8,9这样的题目。步骤一:把他们写成:第一列第二列第三列a0à 1 2 3 >第一行a1à 4 &
22、#160; 5 6 >第二行a2à 7 8 9 >第三行步骤二:这样作题目间很简单:*(a0+1)我们就知道是第一行的第一个元素往后面跳一列,那么这里就是a01元素,所以是。*(a1+2)我们就知道是第二行的第一个元素往后面跳二列。那么这里就是a12元素,所以是6。一定记住:只要是二维数组的题目,一定是写成如上的格式,再去做题目,这样会比较简单。数组的初始化,一维和二维的,一维可以不写,二维第二个一定要写 i
23、nt a=1,2 合法。 int a4=2,3,4合法。 但int a4=2,3,4非法。二维数组中的行指针int a12; 其中a现在就是一个行指针,a+1跳一行数组元素。 搭配(*)p2指针 a0,a1现在就是一个列指针。a0+1 跳一个数组元素。搭配*p2指针数组使用还有记住脱衣服法则: a2 变成 *(a+2) a23变成 *(a+2)3再可以变成 *(
24、*(a+2)+3)这个思想很重要! 第一部分:基础知识(20项,共40分)】1一个C语言程序是由( ) 组成的。 A主程序 B子程序 C函数 D过程2转换说明符%x的输出形式是( )。 A十进制 B八进制 C十六进制 D二进制3若a、b均为int型变量,且a=100,则关于循环语句for(b=100;a!=b;+a,+b) printf ( “ -“) ;的正确说法是( ) 。 A循环体只执行一次 B死循环 C循环体一次也不执行 D输出-4若x、y、z均为int 型变量,则执行下列语句后的z值为 ( )。 x=1; y=2; z=3; z=(x>y)?z :y ; z = (z<y
25、)?z:x; A1 B4 C2 D35下面标识符中,合法的用户标识符为( )。 AP#Ad B12a Cchar D_int 6 A + 3 的结果是( )。 AA BD的ASC码 C65 D37语句char str20;说明str是一个字符串,最多能表示 ( ) 。 A20个字符 B19个字符 C18个字符 D21个字符8将int 型变量n转换成float型变量的方法是 ( )。Afloat n B(float)n Cfloat(n) D21个字符9以下不正确的描述是 ( )。A 使用while和do-while循环时,循环变量初始化的操作应在循环语句之前完成B while循环是先判断表达式
26、后执行循环体语句C do-while和for循环均是先执行循环体语句,后判断表达式D for、while、do-while循环中的循环体均可以由空语句构成10在循环中使用break 语句的功能是( )。A 使程序的执行跳出break所在的那一重循环B 使程序执行结束C 跳出包含此break语句的所有循环D 终止本次循环,继续下次循环11下面是一个初始化指针的语句:int *px = &a;其中指针变量的名字应该是( )。 A*pz Ba Cpx D&a12若指针 px为空指针,则 ( )。 Apx指向不定 Bpx的值为零 Cpx的目标为零 Dpx的地址为零13对于语句int *
27、px10,以下说法正确的是( ) 。A. px是一个指针,指向一个数组,数组的元素是整数型。B. px是一个数组,其数组的每一个元素是指向整数的指针。C. A和B均错,但它是C语言的正确语句。D. C语言不允许这样的语句。14具有相同基类型的指针变量P和数组变量Y,下列写法中不合法的是 ( ) 。AP = Y B*P = Yi CP + &Yi DP = &Y15已知static int a=5,4,3,2,1,*p=a+3,a+2,a+1,a,*q=p,则表达式 *(p0+1)+*(q+2)的值是( )。 A5 B4 C6 D716已知for(;n>=1;n-),下列语
28、句实现将S2所指字符数组中前n个字符复制到S1所指字符数组中,其中代码不正确的是( )。 A*S1+=*S2+ BS1n-1=S2n-1 C*(S1+n-1)=*(S2+n-1) D*(+S1)=*(+S2)17调用函数的实参与被调用函数的形参应该有如下关系( ) 。 A只要求实参和形参个数相等 B只要求形参和实参顺序相同 C只要求实参和形参数据类型相同 D上述三点均需具备18联合体成员的数据类型 ( )。A相同 B可以不同也可以相同 C长度一样 D是结构体变量19由系统分配和控制的标准输出文件为( ) 。 A键盘 B磁盘 C打印机 D显示器20C语言标准库函数fread(fd,buffer,
29、n)的功能是( )。 A从文件fd中读取长度不超过n个字节的数据送入buffer指向的内存区域 B从文件fd中读取长度不超过n-1个字节的数据送入buffer指向的内存区域 C从文件fd中读取长度不超过n个字符送入buffer指向的内存区域 D从文件fd中读取长度不超过n-1个字符送入buffer指向的内存区域第二部分:简单程序(12项,共30分)21下列程序main() int x,y,z; x=y=2;z=3;y=z+-1; printf(“%dt%dt”,x,y); y=+x-1;printf(“%d t%dn”,x,y); y=z-1; printf(“%dt%dt”,z,y); y=
30、-z-1; printf(“%dt%dn”,z,y);运行后输出的数据为¬¬¬_。A. 3 1 4 2 B. 3 1 3 3 C. 2 2 3 2 D. 2 1 3 2 2 4 1 3 2 4 2 2 3 3 2 1 1 3 1 222.下列程序main() int i,j;char *a,c;a=”computer”;printf(“%s”,a);for(i=0,j=7;i<j;i+,j-) c=ai;*(a+i)=*(a+j);aj=c;printf(“->%sn”,a);c=aj-1,i=2+j;printf(“a%d=%cn”,i,c);运行后
31、输出的数据为_ .A. computer->computer B. computer->retupmoca3=u a5=mC. computer->retupmoc D. computer->retupmoca4=p a2=t23.下列程序int sum(int n) int p=1,s=0,i;for(i=1;i<=n;i+) s+=(p*=i);return s;main() printf(“sum(5)=%dn”,sum(5);运行后输出的数据为_ _A.sum(5)=151 B.sum(5)=152 C.sum(5)=153 Dsum(5)=15524.下
32、列程序main() static int a=5,6,7,3,2,9;int s1,s2,i,*ptr;s1=s2=0;ptr=&a0;for(i=0;i<5;i+2=2) s1+=*(ptr+i);s2+=*(ptr+i+1);printf(“s1=%d,s2=%dn”,s1,s2);运行后输出的数据为_A.s1=18,s2=14 B.s1=14,s2=32 C.s1=14,s2=18 D.s1=15,s2=1925.下列程序int c=1;main()static int a=5;int b=6;printf(“a=%d b=%d c=%dn”,a,b,c);func();p
33、rintf(“a=%d,b=%d,c=%dn”,a,b,c);func();func() static int a=4;int b=10;a+=2;c+=10;b+=c;printf(“a=%d,b=%d,c=%dn”,a,b,c);运行后输出的数据为_ _.A. a=5 b=6 c=1 B. a=5 b=6 c=1 a=6 b=21 c=11 a=7 b=17 c=11 a=5 b=6 c=11 a=5 b=6 c=11 a=8 b=31 c=21 a=9 b=17 c=21 C. a=5 b=6 c=1 D. a=5 b=6 c=1a=6 b=21 c=11 a=7 b=17 c=11a=
34、6 b=21 c=11 a=7 b=17 c=11a=8 b=31 c=21 a=9 b=38 c=2126已知struct studentchar name; int student_n; char grade; struct student temp,*p=&temp;=”chou”;则下面不正确的是_。 表达式 值A.pname chou B.(*p)name+2 h C.*pname+2 e D.*(pname+2) o27.下列程序 #define MAX 10 main() int i,sum,a =1,2,3,4,5,6,7,8,9,10; sum=1;
35、for(i=0;i<MAX;i+)sum-=ai;printf(“SUM=%d”,sum); 程序运行结果是: A.SUM=55 B.SUM=-54 C.SUM=-55 D.SUM=5428.下列程序 void inv(int*x,int n) int *p,t,*i,*j,m=(n-1)/2;i=x;j=x+n-1;p=x+m;for(;i<p;i+,j-) t=*i;*i=*j;*j=t; return; main( ) static int i,a10=3,7,9,11,0,6,7,5,4,2; inv(a,10);for(i=0;i<10;i+) printf(“%d
36、,”,ai); 程序运行结果: A.0,2,3,4,5,6,7,7,9,11 B.11,9,7,7,6,5,4,3,2,0 C.3,7,9,11,0,6,7,5,4,2 D.2,4,5,7,6,0,11,9,7,329.下列程序 main() int a10,b10,*pa,*pb,i; pa=a;pb=b; for(i=0;i<3;i+,pa+,pb+) *pa=i;*pb=2*i; printf(“%dt%dn”,*pa,*pb);printf(“n”);pa=&a0;pb=&b0;for(i=0;i<3;i+) *pa=*pa+i; *pb=*pb*i; pr
37、intf(“%dt%dn”,*pa+,*pb+); 运行后输出的数据为_。A. 0 0 B.0 0 C. 0 0 D. 0 0 1 2 1 2 1 2 2 2 2 4 2 4 2 4 2 4 0 0 0 0 0 0 0 0 2 2 2 2 1 2 1 2 4 8 2 4 2 4 4 830.下列程序 copy_string(from,to) char *from,*to; while(*from) *to+=*from+; *to=0; main() static char s1 =”c_program.”; static char s280; copy_string(s1,s2); prin
38、tf(“%sn”,s2);copy_string(“123”,s2);printf(“%sn”,s2); 运行后输出的数据为( )。 A. c_program 123 B.123 C. c_program123 D. c_program 12331.下列程序: #include <stdio.h> main() char a40,b40; int i,j;printf(“Enter the string:”);scanf(“%s”,a); i=j=0;while(ai!=0) if(!(ai>=0&&ai<=9) bj=ai; j+; +i; bj=0;
39、printf(“%s”,b); 运行后输出的结果是( ) 。A. 把键盘输入的字符串显示在屏幕上B. 把键盘输入的字符串中的数字字符删掉,然后显示该字符串C. 把键盘输入的字符串中的字符0和9删掉,然后显示该字符串D. 只保留由键盘输入的字符串中的字母数字,然后显示该字符串32下列程序#include<stdio.h>main() char a80; int i,j; printf(“Enter the string:”);scanf(“%s”,a);i=0;while(ai!=0) if(ai>=A&&ai<=Z) ai=ai-A+a; printf(
40、“%s”,a);运行后输出的结果是( )。A. 把键盘输入的字符串中的大写字母变换成小写字母,然后显示变换后的字符串。B. 把键盘输入的字符串中的数字字符删除掉,然后显示该字符串。C. 把键盘输入的字符串中的小写字母变换成大写字母,然后显示变换后的字符串。D. 把键盘输入的字符串原封不动地显示在屏幕上。第二卷说明:(1)第二卷含二大题,均属填空题,每题各有5个空栏,在阅读和理解原题程序的基础上,在空栏处填入适当的字符、语句,以构成一个正确的C语言程序。 (2)每空栏填对得3分,两大题共10个空栏,全填对得30分。试题一一个整数称为完全平方数,是指它的值是另一个整数的平方。如81是个完全平方数,
41、因为它是9的平方。下列程序是在三位的正整数中寻找符合下列条件的整数:它既是完全平方数,且三位数字中又有两位数字相同:例如144(12*12)、676(26*26)等,从程序中找出并输出所有满足上述条件的三位数。程序如下:main() int n,k,a,b,c; for(k=1; ;k+)_ if(n<100) _ if(n<999) _ a=n/100; b=_ c=n%10, if(flag(a,b,c) printf(“n=%d=%d*%dn”,n,k,k); flag_ return(!(x-y)*(x-z)*(y-z);试题二以下程序所列函数replace(char *s
42、1,char *s2,char str1,char *str2)的功能是将已知字符串s1中的所有与字符串str1相同的子串替换成字符串str2,并将替换后所生成的新的字符串存于字符数组s2中。说明:生成字符串s2的过程是一个循环,顺序访问字符串s1的每个字符;当从某个字符开始不能构成与str1相同的子字符时,就把该字符拷贝到数组s2,当从某个字符开始能构成一个与str1相同的子字符串时,就将字符串str2的各字符拷贝到字符数组s2,并继续访问字符串s1中那个子串之后的字符,直至字符串s1被访问完毕,字符复制即告结束。下列程序运行的结果是输出:ABCXYZdefg abABCXYZd abab程
43、序如下:replace(char *s1,char *s2,char *str1,char *str2) char *t0,*t1,*t2; while( ) for(t0=s1,t1=str1;*t1!=0&& ;t0+,t1+); if(*t1!=0)*s2+= ; else for(t1=str2;*t1!=0;) *s2+= ; ; *s2=0; main() char s1=”abcdefg ababcd abab.”; char s280; replace(s1,s2,”abc”,”ABCXYZ”); printf(“%sn”,s2); 参考答案第一卷一基础知识(2
44、0项,共40分) 1.C 2.C 3.C 4.A 5.D 6.B 7.B 8.B 9.C 10.A 11.C 12.B 13.B 14.D 15.A 16.D 17.D 18.B 19.D 20.A 二简单程序 21.C 22.B 23.C 24.C 25.A 26.B 27.B 28.D 29.A 30.D 31.B 32.A第二卷 试题一:n=k*k continuebreakn%100/10或(n-100*a)/10或n/10-(n/100)*10int x,int y,int z试题二:*s1或s1!=0 *t0=*t1或*t1=*t0 *s1+ *t1+ s1=t0或s1=s1+st
45、rlen(str1)C语言程序设计第一部分:基础知识(20题,共40分)1、一个C语言的源程序中,( ) 。(A)必须有一个主函数 (B)可以有多个主函数(C)必须有主函数和其他函数 (D)可以没有主函数2、下列数据中,为字符串常量的是( ) 。(A)A (B)“house” (C)How do you do (D)$abc3、若有定义:int a=8,b=5,c;,执行语句c=a/b十0.4;后,c的值为( ) 。(A)1.4 (B)1 (C)2.0 (D)24、设有int x=11;则表达式(x+*l/3)的值为( )。(A)3 (B)4 (C)11 (D)125、执行x=5>1+2
46、&&2|2*4<4-!0后,x的值为( )。(A)-l (B)O (C)1 (D)56、以下变量x、y、z均为double类型且已正确赋值,不能正确表示数学式子:(x)/(y×z)的c语言表达式是( )。(A)x/y*z (B)x*(1/(y*z) (C) x/y*1/z (D)x/y/z7、设有以下说明语句struct exint x;float y; char z;example;则下面的叙述不正确的是( )。(A)struct是结构体类型的关键字 (B)example是结构体类型名(C)x,y,z都是结构体成员名 (D)struct ex是结构体类型8、假
47、定w、x、y、z、m均为int型变量;有如下程序段:w=1;x=2;y=3;z=4;m=(w<x)?w:x; m=(m<y)?m:y; m=(m<z)?m:z;则该程序段执行后,m的值是( )。(A)4 (B)3 (C)2 (D) 19、在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是( ) 。 (A) 地址传递 (B) 单向值传递(C) 由实参传给形参,再由形参传回实参 (D) 传递方式由用户指定10、以下定义语句中,错误的是 ( )。(A)int a=1,2; (B) char *a3;(C)char s10="text"; (D)
48、int n=5,an;11、下列程厅执行后的输出结果是( ) 。 main() char arr24; strcpy(arr,"you");strcpy(arr1,"me"); arr03='&'; printf("%sn",arr); (A)you&me (B)you (C) me (D)err12、标有/* */的语句的执行次数是( )。 int y,i; for(i=O;i<20;i+) if(i%2=0) continue; y+=i; /* */ (A) 20 (B) 19 (C) 10
49、 (D) 913、若用数组名作为函数调用的实参,传递给形参的是( )。 (A) 数组的首地址 (B) 数组第一个元素的值 (C) 数组中全部元素的值 (D) 数组元素的个数14、下列语句执行后的结果是( )。 y=5;p=&y;x=*p+; (A) x=5,y=5 (B) x=5,y=6 (C) x=6,y=5 (D) x=6,y=615、执行下面的语句后,表达式*(p0+1)+*(q+2)的值为 ( )。 int a=5,4,3,2,1,*p=a+3,a+2,a+1,a,*q=p; (A) 8 (B) 7 (C) 6 (D) 516、经过下面的语句后 int i,a10,*p; 定义
50、后,下列语句中合法的是 ( )。 (A) p=100: (B) p=a5; (C) p=a+2; (D) p=&(i+2);17、若有以下说明和语句,则对pup中sex域的正确引用方式是( )。 struct pupilchar name20; int sex; pup,*p;p=&pup;(A)p.pup.sex (B)p->pup.sex (C)(*p).pup.sex (D)(*p).sex18、若已定义了如下的共用体类型变量x,则x所占用的内存字节数为( ) 。union data int i; char ch; double f; x;(A) 7 (B) 11
51、(C)8 (D) 1019、若有下面的说明和定义:struct test int m1;char m2;float m3; union uu char u15;int u22;ua; myaa;则sizeof(struct test)的值是 ( ) 。 (A) 12 (B) 16 (C) 14 (D)920、若要打开:A盘上user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是( ) 。 (A)fopen("A:userabc.txt","r") (B) fopen("A:userabc.txt",&q
52、uot;r+") (C)fopen("A:userabc.txt","rb") (D) fopen("A:userlabc.txt","w")第二部分:简单程序(12题,共30分)21、以下程序的运行情况是( ) 。 main() int i=1,sum=0; while(i<10) sum=sum+1; i+; printf("i=%d,sum=%d",i,sum); (A) i=10,sum=9 (B) i=9,sum=9 (C) i=2,sum=l (D) 运行出现错误22
53、、若输入B,以下程序的运行结果为( ) 。main() char grade; scanf("%c",&grade); switch(grade) case 'A':printf(">=85"); case 'B': case 'C':printf(">=60"); case 'D':printf("<60");default:printf("error"); (A)>=85 (B)>=60 (
54、C)>=60<60error (D) error23.有如下程序 main() int x=23; do printf("%d",x-);while(!x); 该程序的执行结果是( ) 。(A)321 (B)23 (C)不输出任何内容 (D)陷入死循环24.有如下程序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) 12 (B) 13 (C)14 (D)1525.以下程序的输出结果是( ) 。main() int a,b; for(a=1,b=1;a<=100;a+) if(b>=10) break; if
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江西省宜春重点中学2022-2023学年联考高二下学期语文期末试卷(含答案)
- 北京市西城区2023-2024学年五年级下学期语文期末试卷(含答案)
- 2025护工与老年人直接雇佣合同
- 2025合同法制的创新与发展趋势
- 2025中介租赁合同书范本
- 2025年科技创业前如何精准签订技术转让合同
- 2025年深圳市租房租赁合同简易模板
- 2025年合作伙伴间的合同范本
- 2025铝材买卖合同模板范本
- 《中国股市发展历程》课件
- 医院培训课件:《产前准备-为顺产做准备》
- 《管理学原理》(课件)
- 长城汽车2025人才测评答案
- 幼儿园法制教育讲座
- 《中华人民共和国产品质量法》知识培训
- 技能人才评价命题技术规程
- 中职不等式的试题及答案
- 深信服aES产品技术白皮书-V1.5
- Unit+2+Expressing+yourself+PartB(课件)【知识精研】人教PEP版(2024)英语三年级下册
- 电子商务与电子政务的互补关系
- 《安全人机工程学》试题及答案
评论
0/150
提交评论