版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、c语言程序设计试题及答案完整版 鑫鑫打印社印 2021年2021学年c语言程序设计复习题 c语言复习资料 必需清晰的: 、每个c语言程序中main函数是有且只有一个。 、在函数中不行以再定义函数。 、算法的是肯定要有输出的,他可以没有输入。 、break可用于循环结构和switch语句。 、逗号运算符的级别最低。 下划线组成。有其它元素就错了。 并且第一个必需为字母或则是下划线。第一个为数字就错了。 关键字不行以作为用户标识符号。main define scanf printf 都不是关键字。迷惑你的地方if是可以做为用户标识符。由于if中的第一个字母大写了,所以不是关键字。 2)实型数据的合
2、法形式: 1)程序结构是三种: 挨次结构 , 循环结构(三个循环结构), 选择结构(if 和 switch) 2)读程序都要从main()入口, 然后从最上面挨次往下读(遇到循环做循环,遇到选择做选择)。 3)计算机的数据在电脑中保存是以 二进制的形式. 数据存放的位置就是 他的地址. 4)bit是位 是指为0 或者byte 是指字节, 一个八个位. 5)肯定要记住 二进制 如何划成 十进制。 概念常考到的: 、编译预处理不是c语言的一部分,不再运行时间。c语言编译的程序称为源程序,它以ascii数值存放在文本文件中。 鑫鑫打印社印 2021年2021学年c语言程序设计复习题 2.333e-1
3、 就是合法的,且数据是2.33310-1。 考试口诀:e前e后必有数,e后必为整数。. 3)字符数据的合法形式:: '1' 是字符占一个字节,1是字符串占两个字节(含有一个结束符号)。 'a' 的ascii数值是97,'a'的ascii数值是65。 4) 整型一般是两个字节, 型是一个字节,个字节: 考试时候一般会说,在16遇到这种状况,不要去管,一样做题。把握整型一般是两个字节, 字符型是一个字节,双精度一般是4个字节就可以了。 5)转义字符的考查: 在程序中 int a = 0x6d,是把一个十六进制的数给变量a 注 意这里的0x必需存在。
4、在程序中 int a = 06d, 是一个八进制的形式。 在转义字符中, x6d 才是合法的,0不能写,并且x是小写。 141 是合法的, 0是不能写的。 108 是非法的,由于不行以出6 7)强制类型转换: 肯定是 (int)a 不是 int(a),留意类型上肯定有括号的。 a+b 的区分。 前是把a+b转型,后是把a转型再加b。 8)表达式的考查: 是表达式就肯定有数值。 赋值表达式:表达式数值是最左边的数值,a=b=5;该表达式为5,常量不行以赋值。 '0' 的ascii数值表示为48,现8。 位编译系统,或者是32位系统。 留意(int)(a+b)和(int) 鑫鑫打印
5、社印 2021年2021学年c语言程序设计复习题 自加、自减表达式:假设a=5,处理(先把十进制变成二进制+a(是为6), a+(为5); 运行的机理:+a 是先把变量的数值加上1,然后把得到的数值放到变量a中,然后再用这 个+a表达式的数值为6,而a+是先用该表达式的数值为5,然后再把a的数值加上1为6, 再放到变量a中。 进行了+a和a+后在下面的程序中再用 再变成十进制)。 例1: char a = 6, b; b = a2; 这种题目的计算是先要把a的十进制6化成二进制,再做位运算。 例2: 肯定要记住, 例3: 在没有舍去数据的时候,左移一位表示乘以2;2。 的数值是非法的,八进 到
6、a的话都是变量a中的68的,逢8进1。 考试口诀:+11)%符号两边要求是整数。不+在后先用后加。 逗号表达式:优先级别最低 ;表达式的数值逗号最右边的那个表达式的数值。 (2,3,4)的表达式的数值就是4。 9)位运算的考查: 会有一到二题考试题目。 总的处理方法:几乎全部的位运算的题目都要按这个流程来 是整数就错了。 12) 三种取整丢小数的状况: 、int a =1.6; 、(int)a; 、 其次章 1)printf函数的格式考查: %d对应整型;%c对应字符;%f对应单精度等等。宽度的, 鑫鑫打印社印 2021年2021学年c语言程序设计复习题 左对齐等修饰。 %ld对应 long
7、int;%lf 对应double。 2)scanf函数的格式考察: 留意该函数的其次个部分是a 这样的地址,不是a; scanf(“%d%d%*d%d”,a,b3)putchar ,getchar 函数的考查: char a = getchar() 是没有参数的,从键盘得到你输入的一个字符给变量a。 putchar( y )把字符y屏幕中。 4)如何实现两个变量x ,y中数值的互换(要求背下来) 不行以把 x=y ,y=x; 要用中间变量 t=x;x=y;y=t。 5)如何实现保留三位小数,第四位四舍五入的程序,(要求背下来) (int)x 这样是把小数部分去掉。 第三章 特殊要留意:c语言中
8、是用非0表示规律真的,用0表示规律假的。 表达式的数值只能为1(表示0(表示假) 1。如 98这个是真的,所以表达式的数值就是1; 2)规律表达式: 只能为1(表示为真),或0(表示假) a) 共有 | ! 三种规律运算符号。 b) !| 优先的级别。 c) 留意短路现象。考试比较喜爱考到。 d) 要表示 x 是比0大,比 ,c); 跳过输入的第三个数据。 1)关系表达式: 这个有推广的意义,留意 x = 10小的方法。0x10是不行以 鑫鑫打印社印 2021年2021学年c语言程序设计复习题 的(肯定记住)。是先计算0x b)switch只可以和break一得到的结果为1或则0;再用0,起用
9、,不行以和continue用。 或1与10比较得到的总是真(0x)(x10)表示比0大比10小。 3)f 语句 else 是与最接近的if且没有else的相组合的。 4)条件表达式: 表达式1 ?表达式2 :表达式3 留意是当非0式2的数值,当为0达式2的数值。 考试口诀:真前假后。 5)switch语句: a)肯定要留意 有break 和没 1)三种循环结构: a)for() ; while(); do- while()三种。 b)for循环当中必需是两个分号,千万不要遗忘。 c d) do-while()循环的最终一个while();的分号肯定不能够丢。(当心上机改错) 2) break
10、和 continue的差别 记忆方法: break:是打破的意思,(破了整 (为1)。所以肯定要用 第四章 有break的差别,书上(34页)个循环)所以观察break就退出的两个例子,没有break时候,真个一层循环。 只要有一个case匹配了,剩下的都要执行,有break则是直接跳出了swiche语句。 continue:是连续的意思,(连续循环运算),但是要结束本次循环,就是循环体内剩下的语 鑫鑫打印社印 2021年2021学年c语言程序设计复习题 句不再执行,跳到循环开头,然后推断循环条件,进行新一轮的循环。 3)嵌套循环 就是有循环里面还有循环,这种比较简单,要一层一层一步一步急躁的
11、计算,一般记住两层是处理二维数组的。 和 while(c=getchar() != n )的差别 的区分: (!=号的级别高于=号 一个先计算 3!=2) 第一个a的数值是得到的1;其次个a的数值是3。 考试留意点: 括号在这里的重要性。 第五章 函数:是具有肯定功能的一个程序块; 1) 函数的参数,返回数值(示意图): main() int a = 5,b=6,c; c = add(a,b); printf(“%d”,c); add函数的返回数值。 int add ( int x, int y) int z; z=x+y; return z; 被调用函数 x,y是形式参数 函数返回数值是整型
12、 4) while(c=getchar())!= n ) 先看a = 3 != 2 和 (a=3)! 鑫鑫打印社印 2021年2021学年c语言程序设计复习题 z就是这个add函数计算后得到的结果,就是函数返回给主程序的返回数值。 程序是在从上往下挨次执行,当遇到了函数add后,把a,b的数值穿给调用函数,程序临时中断等待返回数值。当得到了返回数值后,再挨次的往下执行 实参和形参之间 传数值,和 会转变实参的变化。 传地址的话,形参的变化就会有可能转变实参的变化。 3)函数声明的考查: 肯定要有:函数名,函数的返回类型,函数的参数类型。 不肯定要有:形参的名称。 第六章 指针变量的本质是用来放
13、地 址,而一般的变量是放数值的。 int *p 中 *p和p的差别: *p可以当做变量来用;*的作用是取后面地址p里面的数值 p是当作地址来使用。 *p+ 和 (*p)+的之间的差别:改错题目中很重要 *p+是 地址会变化。 (*p)+ 是数值会要变(考试的重点) 地址。数组名不行以自加,他是地址常量名。(考了许多次) 函数名:表示该函数的入口地址。 字符串常量名:表示第一个字符的地址。 第七章 1一维数组的重要概念: 对a10这个数组的争论。 、a表示数组名,是第一个元 2)肯定要留意参数之间的传递 传地址的差别。数组名:表示第一个元素的 鑫鑫打印社印 2021年2021学年c语言程序设计复
14、习题 素的地址,也就是元素a10的地址。 、a是地址常量,所以只要消失a+,或者是a=a+2赋值的都是错误的。 、a是一维数组名,所以它是列指针,也就是说a+1是跳一列。 对a33的争论。 、a表示数组名,是第一个元素的地址,也就是元素a10的地址。 、a是地址常量,现a+,或者是a=a+2是错误的。 、a是二维数组名,所以它是行指针,也就是说a+1是跳一行。 、a0、a1、a2也都是地址常量,不行以对它进行赋值操作,同时它们都是列指针,a0+1,a1+1,a2+1都是跳一列。 、留意a和a0 、a1、a2是不同的,它们的基类型是不同的。前者是一行元素,后三者是一列元素。 二维数组做题目的技巧
15、: 如的题目。 其次列 第三列 1 2 3 a1 4 5 6 其次行 a2 7 8 9 第三行 *(a0+1)我们就知道是第一行的第一个元素往后面跳一列,那么这里就是a01元素,所以是。 *(a1+2)我们就知道是其次行的第一个元素往后面跳二列。 果有 a33=1,2,3,4,5,6,7,8,9这样 步骤一:把他们写成: 步骤二:这样作题目间很简洁: 鑫鑫打印社印 2021年2021学年c语言程序设计复习题 那么这里就是a12元素,所以是6。 肯定记住:只要是二维数组的题目,肯定是写成如上的格式,再去做题目,这样会比较简洁。 数组的初始化,一维和二维的,一维可以不写,二维其次个肯定要写 int
16、 a=1,2 合法。 int a4=2,3,4合法。 但int a4=2,3,4非法。 二维数组中的行指针 int a12; 其中aa+1跳一行数组元素。 搭配(*)p2指针 a0,a1现在就是一个列指针。a0+1 跳一个数组元素。搭配*p2指针数组使用 还有记住脱衣服法则: a2 变成 *(a+2) a23变成 *(a+2)3再可以变成 *(*(a+2)+3) 这个思想很重要! 第一部分:基础学问(20项,共40分)】 1一个c语言程序是由( ) 组成的。 a主程序 b子程d过程 2%x的输出形式 )。 b八进d二进制 3若a、b均为int型变量,且a=100,则关于循环语句for(b=10
17、0;a!=b;+a,+b) printf ( “ -“) ;的正确说法是( ) 。 b死循环 d输出- 序 c函数 制 c十六进制 a循环体只执行一次 c循环体一次也不执行 鑫鑫打印社印 2021年2021学年c语言程序设计复习题 4若x、y、z均为int 型变量,afloat n b(float)n 则执行下列语句后的z值为 cfloat(n) d21个字符 ( )。 z = (zy)?z:x; c2 d3 5下面标识符中,合法的用户标识符为( )。 cchar d_int aa bd3 7语句char str20;说明str是( ) 。 a20个字符 b19d21个字符 8将int 型变量
18、n转换成float型变量的方法是 ( )。 9以下不正确的描述是 a 使用while和do-while循应在循环语句之前完成 b while循环是先推断表达式后执行循环体语句 d for、while、do-while循环成 10在循环中使用break 语句a 使程序的执行跳出break所在的那一重循环 c 跳出包含此break语句的全部循环 d 终止本次循环,连续下次 x=1; y=2; z=3; z=(xy)?z :y ; ( )。 a1 b4 环时,循环变量初始化的操作 ap#ad b12a c 和for循环均是先6 a + 3 的结果是( asc码 65 中的循环体均可以由空语句构 一个
19、字符串,最多能表示 的功能是( )。 个字符 c18个字符 b 使程序执行结束 鑫鑫打印社印 2021年2021学年c语言程序设计复习题 循环 11下面是一个初始化指针的语句:int *px = a;其中指针变量的名字应当是( )。 cpx da ( )。 apxbpx的值为零 cpx的目标为零 dpx的地址为零 13对于语句int 说法正确的是( ) a. px是一个指针,指向一个数组,数组的元素是整数型。 b. px是一个数组,其数组的每一个元素是指向整数的指针。 c. a和b均错,但它是c语言的正确语句。 d. c语言不允许这样的语句。 14具有相同基类型的指针变量p和数组变量y,下列写
20、法 中不合法的是 ( ) 。 ac15 已p 知则p + = b*p = yi y yi int 式 a*pz ba d p = y static 表 达 12若指针 px为空指针,则 a=5,4,3,2,1,*p=a+3,a+2,a +1,a,*q=p,( 6 d7 16已知for(;n=1;n-),下列语句实现将s2所指字符数组中前n个字符复制到s1所指字符数组中,其中代码不正确的是( )。 a bs1n-1=s2n-1 d*(+s1)=*(+s2) 17调用函数的实参加被调用函数的形参应当有如下关系 指向不定 *(p0+1)+*(q+2) 的值是 5 b4 *s1+=*s2+ c*(s1
21、+n-1)=*(s2+n-1) 鑫鑫打印社印 2021年2021学年c语言程序设计复习题 ( ) 。 a只要求实参和形参个数相等 b只要求形参和实参挨次相同 c只要求实参和形参数据类型相同 d上述三点均需具备 ( )。 ac 长 相度 一 b可以不同也可以相同 d是结构体变量 19输出文件为( ) 。 c打印机 d显示器 20c语言标准库函数fread(fd,buffer,n)的功能是( )。 a从文件fd中读取长度不超过n个字节的数据送入buffer指向的内存区域 b从文件fd中读取长度不超过n-1个字节的数据送入buffer指向的内存区域 c从文件fd中读取长度不超过n个字符送入buffe
22、r指向的内存区域 d从文件fd中读取长度指向的内存区域 同 12项, 30 分) 21下列程序 main() int x,y,z; 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=-z-1; 18联合体成员的数据类型 不超过n-1个字符送入buffer a键盘 b磁盘 x=y=2;z=3; 鑫鑫打印社印 2021年2021学年c语言程序设计复习题 printf(“%dt%dn”,z,y); 运行后输出的数据为_。 c. 2 2 3 2 d. 2 1 3 2 3
23、 3 2 1 1 3 1 2 22.下列程序 main() int i,j;char *a,c; a=”computer”; printf(“%s”,a); for(i=0,j=7;ij;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); 运行后输出的数据为_ . a. computer-computer b. computer-retupmoc a3=u a5=m computer-retupmoc a2=t 23.下列程序 s+=(p*=i); return s;
24、main() printf(“sum(5)=%dn”,sum(5); 运行后输出的数据为_ _ a.sum(5)=151 b.sum(5)=152 c.sum(5)=153 dsum(5)=155 24.下列程序 main() a. 3 1 4 2 b. 3 1 3 3 c. computer-retupmoc d. 2 4 1 3 2 4 2 2 a4=p 鑫鑫打印社印 2021年2021学年c语言程序设计复习题 static int a=5,6,7,3,2,9; int s1,s2,i,*ptr; s1=s2=0; ptr=a0; for(i=0;i5;i+2=2) s1+=*(ptr+i
25、); s2+=*(ptr+i+1); printf(“s1=%d,s2=%dn”,s1,s2); 运行后输出的数据为_ c.s1=14,s2=18 d.s1=15,s2=19 25.下列程序 int c=1; main() static int a=5;int b=6; printf(“a=%d c=%dn”,a,b,c); func(); printf(“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); _ _
26、. a=5 b=6 b=21 b=6 b=31 a=5 b=6 b=21 b. a=5 b=6 c=1 a=6 a=5 a=8 c. a=6 a.s1=18,s2=14 c=1 c=11 a=7 b=17 c=11 a=5 b=6 c=11 b=%d a=9 b=17 c=21 d. a=5 b=6 c=1 a=7 b=17 c=11 c=11 c=21 c=1 c=11 鑫鑫打印社印 2021年2021学年c语言程序设计复习题 a=6 a=8 26已知 b=21 b=31 c=11 27. 下列程序 #define max 10 c=21 main() sum=1; for(i=0;imax
27、;i+) sum-=ai; printf(“sum=%d”,sum); : a.sum=55 b.sum=-54 c.sum=-55 d.sum=54 void inv(int*x,int n) 式 28. 下列程序 name int *p,t,*i,*j,m=(n-1)/2; i=x; name+2 j=x+n-1; p=x+m; name+2 for(;ip;i+,j-) t=*i; name+2) *i=*j; *j=t; a=7 b=17 c=11 a=9 b=38 c=21 struct student char name; int student_n; char grade; ;
28、struct student temp,*p=temp; =”chou”; 则下面不正确的是 表值 a.pchou b.(*p)h c.*pe d.*(po int i,sum,a =1,2,3,4,5,6,7,8,9,10; 达 鑫鑫打印社印 2021年2021学年c语言程序设计复习题 return; main( ) static i,a10=3,7,9,11,0,6,7,5,4,2; inv(a,10); for(i=0;i10;i+) printf(“%d,”,ai); 程序运行结果: b.11,9,7,7,6,5,4,3,2,0 d.2,4,5,7,6,0,11,9,7,3 29.下列
29、程序 main() int a10,b10,*pa,*pb,i; pa=a;pb=b; for(i=0;i3;i+,pa+,pb+) *pa=i;*pb=2*i; printf(“%dt%dn”,*pa,*pb); printf(“n”); pa=a0; int pb=b0; for(i=0;i3;i+) *pa=*pa+i; *pb=*pb*i; t%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 a.0,2,3,4,5,6,7,7,9,1
30、1 c.3,7,9,11,0,6,7,5,4,2 运行后输出的数据为 _。 鑫鑫打印社印 2021年2021学年c语言程序设计复习题 1 2 4 8 30.下列程序 copy_string(from,to) char *from,*to; *to+=*from+; *to= 0 ; main() static s1 =”c_program.”; static char s280; copy_string(s1,s2); printf(“%sn”,s2); copy_string(“123”,s2); printf(“%sn”,s2); 运行后输出的数据为( )。 c_program 123 3
31、1.下列程序: #include stdio.h main() while(*from) char a40,b40; int i,j; printf(“enter the string:”); i=j=0; 0 ) if(!(ai= 0 ai= 9 ) bj=ai; j+; +i; bj= 0 ; printf(“%s”,b); 运行后输出的结果是 4 8 2 4 2 4 a. c_program 123 b.123 ( ) 。 c. c_program123 d. a. 把键盘输入的字符串显示 鑫鑫打印社印 2021年2021学年c语言程序设计复习题 在屏幕上 b. 把键盘输入的字符串中的数
32、字字符删掉,然后显示该字符串 c. 把键盘输入的字符串中的字符0和9删掉,然后显示该字符串 d. 只保留由键盘输入的字符串中的字母数字,然后显示该字符串 32下列程序 #includestdio.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(“%s”,a); 运行后输出的结果是( )。 a. 把键盘输入的字符串中的大写字母变换成小写字母,然后显示变换后的字符串。 b. 把键盘输入的
33、字符串中的数字字符删除掉,然后显示该字符串。 c. 把键盘输入的字符串中的 把键盘输入的字符串原封不动地显示在屏幕上。 其次卷 说明:(1)其次卷含二大题,均属填空题,每题各有5个空栏,在阅读和理解原题程序的基础上,在空栏处填入适当的字符、语句,以构成一个正确的c语言程序。 (2)每空栏填对得 鑫鑫打印社印 2021年2021学年c语言程序设计复习题 3分,两大题共10个空栏,全填对得30分。 试题一 一个整数称为完全平方数,是指它的值是另一个整数的平方。如81是个完全平方数,由于它是9的平方。下列程序是在三位的正整数中查找符合下列条件的整数:它既是完全平方数,且三位数字中又有两位676(26
34、*26三位数。 程序如下: main() int n,k,a,b,c; for(k=1; ;k+) _ 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); *s1,char *s2,char str1,char *str2)的功能是将已知字符串s1中的全部与字符串str1相同的子串替换成字符串str2,并将替换后所生成的新的字符串存于字符数组s2中。 说明:生成字符串s2的过程是一个循环,挨次访问字符串s1 数字相同:例如144(12*12)replace(char if(n100) _ 的每个字符;当从某个字符开 if(n999) _ 始不能构成与str1相同的子字 a=n/100; 符时,就把该字符拷贝到数组 鑫鑫打印社印 2021年2021学年c语言程序设计复习题 s2,当从某个字符开头能构成一个与str1相同的子字符串时,就将字符串str2的各字符拷贝到字符数组s2,并连续访问字符串s1中那个子串之后的字字符复制即告结束。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030年中国脉动微震袋式除尘器数据监测研究报告
- 2025至2030年中国土人参数据监测研究报告
- 2025至2030年中国半挂粉粒物料运输车数据监测研究报告
- 二零二五年度环保型仓库出租合同4篇
- 二零二四年信用借款逾期利率调整合同3篇
- 2025年度互联网金融平台数据安全保护合同4篇
- 2025年度个人债务担保合同范本与风险控制策略
- 二零二四年度园林绿化养护私人承包合同范本3篇
- 二零二五年度畜牧业农业综合开发项目合作协议4篇
- 2025版存量房买卖合同(含智能家居娱乐系统定制)3篇
- 中医诊疗方案肾病科
- 2025年安庆港华燃气限公司招聘工作人员14人高频重点提升(共500题)附带答案详解
- 人教版(2025新版)七年级下册数学第七章 相交线与平行线 单元测试卷(含答案)
- 从跨文化交际的角度解析中西方酒文化(合集5篇)xiexiebang.com
- 中药饮片培训课件
- 医院护理培训课件:《早产儿姿势管理与摆位》
- 《论文的写作技巧》课件
- 空气自动站仪器运营维护项目操作说明以及简单故障处理
- 2022年12月Python-一级等级考试真题(附答案-解析)
- T-CHSA 020-2023 上颌骨缺损手术功能修复重建的专家共识
- Hypermesh lsdyna转动副连接课件完整版
评论
0/150
提交评论