




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C 语言程序设计 ( 龙昭华主编 )习题集第 1 章 计算机语言程序设计与软件开发基础概述234567891.简述计算机的组成及计算机中数值的表示方法。 什么是程序?它由什么组成? 程序设计过程的一般步骤是什么? 算法有些什么特性,它在程序设计中的作用? 描述软件的概念,简述它的分类。 结构化程序设计有哪些基本结构,以及它们采用什么设计方法? 什么是软件工程,它的出现有何意义? 软件生命周期及各阶段的主要任务 什么软件开发模型,有哪几种常见模型 ?10C 语言常用哪些开发工具,你平常用是哪个?11 .C语言中有哪些关键字、标识符,应用它们时应该注意些什么 12什么是函数,它在程序中的作用?13
2、. C 语言的特点有些什么?它和其他你所知道的语言有什么不同?补充题:1.14分别使用自然语言、流程图、N-S图、伪代码写出求的根的算法。分别考虑有两个不等的实根;有两个相等的实根;无实根。1.15分别使用N S图、伪代码写出求n!的算法。要求:如果 n>200,则打印n值太大,请重新输入 n 值”;否则打印出 n 的值和 n! 的值。1.16请参照本章例题,编写一个C程序,输出以下信息:*Very Good !*1.17编写一个C程序,输入a,b,c三个值,输出其中最小者。(该题请事先使用N S图、伪代码将其算法表示出来。 )第 2 章 C 语言的数据类型、运算符及其表达式习题 2、选
3、择题1 下列表达式的值,哪一个等于0?A 2%5 B 7/5|x+ C 1/2.0 Dsizeof(float)> sizeof(int)> sizeof(char)22int a , *p=&a,下列选项中表达式为变量A *P B *&a C p D &p 列选项中,在一个二进制补码数字系统中, 其余位不变的位运算为?a 的地址?清除了x 中最右边为 1 的那一位 ,3A x&(x 1)B x|(1) C x& (x 1)D x| (x 1)C 语言中字符(char)型数据在内存中是以何种形式存放的( )。B 补码 C 反码 D在位运算中,
4、操作数若右移两位,其结果相当于 A 操作数乘以 2 B 操作数除以 2 数除以 45A 原码4ASCII( )。C 操作数乘以 4 D 操作6下列不正确的转义字符是 ( )。 A '设在程序中的数式 (1/abc)A 1/a*b*cn' a,b,c均被定义为整型并且已赋予大于 的表达式是 ( )。B 1/(a*b*c)B 18' C O' D1 的值, 能正确表示代7下面标识符中,A F3 B不合法的用户标识符为SUM Ca#c8下列表达式中的值,哪一个等于A -b&b B b|b CC 1/a/b/(float)cD1.0/a/b/c( )。D aut
5、oE double)。(int b=2)b>>1E 3&&49.设a,b和c都是int型变量,且a=3,b=4,c=5.则值为0 的表达式是 ()A)a+b>c&&b= =cC)!(a>b)&&!c|1B)a|b+c&&b-cD)!(x=a)&&(y=b)&&0E)!(a+b)+c-1&&b+c/2二、填空题1 下列常量、变量名是合法的。ofd, 0xfdj , e8, ', 032_auto, _register , 234_258, _int_ 。
6、 int x=5 ,则执行语句 0|+x 后,变量 x 的值为多少?( 03<<2 ) &&x ?x 的结果为 。int a=12 ,则执行完语句a+= a= a*a后,表达式的值为5j, k 为 int 整型变量,请写出运算表达式: k=j=3 , j+3, j+, +j*(k-)*1/6 , 表达式的值是 ;变量k的值是;变量j的值6/* 逗号表达式,自增运算符 */X为整型变量,则表达式XAx的值用十六进制表示为7设x为整型变量,则表达式(X&1 ) = = (x%2)的值为字符串“ ab034x79 ”的长度为 。x 为 double 型变量,请写出
7、运算表达式 x=3.0, x+, x+*x+ 后,表达式的值 是 ,变量 x 的值是10表达式 (1<<3) 的值是 _ 三、判断题1.2.89表达式 18>>2 的值是 4。运算符, - -, +=的优先级相同且运算次序从左至右。3.4.5.表达式 6.0*(1/2) 的值为 0。C 语言中一个字符可以用十进制整数表示,如: 的。若变量 j 已被赋值为 8,则执行完语句printf( “%c”, 258);是合法1|j+ 后, j 值为 9 。6.7.8.printf("%d",sizeof(1234); 其结果是 4。 int a=4,b=0;
8、则表达式 a&&!b 的值是 C 语言在判断一个量是否为真时,以非1。0 值代表 “真”,以 0 值代表 “假 ”。四、写出以下程序的运行结果1 main()int x=8 , y, z;y=z=x; x=y= =z;printf( “%d”, x);a;b, e;c;2 main()char int float double d; e=sizeof(a*b+c-d); printf( “%d”, e);3.4.5.6.main ()double X;x=(i nt)8.4;printf( % f”,X);main ()un sig ned x=65535;printf( %d
9、”,x);main ()int k;double j=6.4;k=k+2;k=j+=1;printf( %d”,k);main ()int a, b, c;a=(b=(c=3)*5)*2-3;printf( a=%d, b=%d, c=%d ”,a, b, c);补充题:2.5 将以下3个整数分别赋给不同类型的变量,请画出数据在内存中的存储形式。变量的类型25-232769int 型(16 位) long型 (32 位) short型 (16 位) signed cha 型(8 位)unsigned in型 unsigned Ion型 unsigned shor型 unsigned cha 型
10、2.6要将“ China ”译成密码,密码规律是:用原来的字母后面第4个字母代替原来的字母。女口 :字母 A用 E弋替。因此 China "应译为Glmre "。请编一程序,用赋初值的方法n' 'a'经过运算,使使 c1、c2、c3、c4、c5 五个变量的值分别为 C'、'h'、'Ic1 、c2、c3、c4、c5 分别变成 G'、' ' 'm'''''并输出。第 3 章 结构化程序设计3-1.选择题若 int x,y,z; 则为它们输入数据的正确语
11、句是 。A). scanf("%D%D%D",&a,&b,&c);B). scanf("%d%d%d",&a,&b,&c);C). scanf("%d%d%d",a,b,c); D). scanf("%d%d%dn",&a,&b,&c);3-2.3-3.若 int a;a=68; 则执行下面语句后的输出结果是 printf("%d,%o,%x,%cn",a,a,a,a);A). 68,104,44,D B). 104,68,
12、44,DC). 68,104,D,44 D). 68,44,104,D若 int x ,y; double z;,则不合法的 scanf 函数调用语句是3-4.A). scanf(" %d%lx,%le",&x,&y,&z);B). scanf("%2d * %d%lf"&x,&y,&z);C). scanf("%x %* d%o",&x,&y);D). scanf("%x%o%6.2f",&x,&y,&z);若 float x
13、,y; 用下面的语句使 x,y 均为1.5 ,正确的输入是scanf("x=%f,y=%f",&x,&y);A). 1.25,1.25B). 1.25_1.25C). x=1.25,y=1.25 D). x=1.25_y=1.253-5. if 语句的控制条件 _A). 只能用关系表达式B).C). 只能用关系表达式或逻辑表达式D).只能用逻辑表达式可以是任意表达式y 的值是3-6. 若 int x,y; ,则执行下面的循环后, for (y=1 , x=1; y<=50; y+) if(x>=10)break ;3-7.3-8.3-9.3-10
14、.3-11.3-12.3-13.3-14.if(x%2=1) x+=5;continue ; x = 3;A). 2 B). 4 C). 6 设有下面的程序段 int k=10;while(k=0) k=k-1; 则下面描述中正确的是 A). while 循环执行 10 次C). 循环体语句一次也不执行D). 8B).D).若 int x,y ,则以下的 for 循环 for(x=0,y=0;(y!=123)&&(x<5);x+); A). 执行 4 次 B).执行 5 次C). 循环次数不确定 D). 是死循环 判断题(正确的在题后括号内划“/循环是无限循环循环体语句执
15、行一次,错误的划“X”)用预定义函数 putchar() 可以输出整型变量的值。 ( ) 在调用 scanf 函数时,可以指明输入数据的精度。 ( ) 三种循环语句 while、for和dowhile都实现当型循环。()若 int i=10, j=0;if(j=0)i+;elseswitch (i)case 4: j+;case 5: j-;case 6: j+;case 7: j-=2;default:;i-;若 int i=5, j=10;则执行完下面的语句后, i 的值为 11。 ( )则执行完下面的语句, j 的值为 8。( )读程序 下面程序正确的运行结果是 #include <
16、;stdio.h>void main() long y=-43456;printf("y=%-8ldn",y); printf("y=%-08ldn",y); printf("y=%08ldn",y); printf("y=%+8ldn",y);3-15.若有下面的程序#include<stdio.h>void main()int m, n, x, y, c; scanf("%d%d",&m,&n); while(m&&n)c=0;x=m>
17、0? m:-m;y =n>0? n:-n; while(x>=y) x-=y; c+; printf ("(%d,%d)=> %d.%dn",m, n, c, x); scanf("%d%d",&m, &n);运行时分别输入:100 -15/ , -20 30 /,其中“/”表示回车符。3-16.运行结果是 。下面程序运行时的输出结果是#include<stdio.h>3-17.void main()int s=1;while(s<20 | s%3!=1)s+;while(s%5!=2)s+=3;whi
18、le(s%4!=3)s+=15;printf("nThe result is :%d", s); 下面程序运行时的输出结果是#include <stdio.h>void main()int x=18,i;for(i=2;i<9;i+)if(x%i=0)printf("%1d",i);x=x/i-;四、if(x=0)break;编程题3-18.编一程序,从输入圆的半径,输出圆的周长和面积。3-19 .编一程序,从键盘输入一个字母,输出其ASCII 码。3-20.输入三角形的三条边a,b,c ,判断它们能否构成三角形,若能则指出是何种三角形
19、:等边三角形、等腰三角形、直角三角形、一般三角形。3-21. 一个整数,它加上 100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?3-22.已知某公司员工的保底薪水为 成的关系如下(计量单位:元):500,某月所接工程的利润profit(整数)与利润提profitw 1000没有提成;1000 V profitw 2000提成10%2000< profitw 5000提成15%5000 < profit w 10000提成20%10000 < profit提成25%编程输入某月利润,计算并输出员工本月薪水。3-23.编程求下面分段函数的值。r 2x +
20、1X C -1y = <X -1r3-1 <x vO0<x v11 - x'x>13-24 .编程输出100到1000之间能被3整除但不能被5整除的数。3-24.编程求下面数列前 20项之和。23 5813211'2 ' 3'5 ' 8 ' 13编程计算1!+2!+10!编程计算 a+aa+aaa+aaa(n3-23.3-24.个a)的值,n和a的值有键盘输入。3-25.3-26.利用下面式子的前100项求n的近似值。兀 224 466=XX X X-X X213利用下面的公式求 e的近似值,4_4、66.3 5 5 7直
21、到最后一项的绝对值小于10-6。e十11!+丄+丄+丄+丄2!3!4! n!编程输出所有的“水仙花”数。若一个三位整数等于其各位数字的立方和,则该数3-27.为“水仙花”数,如 153=13+53+33。3-28.找出1100之间的全部同构数。若一个数出现在它的平方数的右边,则该数称为同 构数。女0 5为同构数。3-29.编程输出下列图案:AAAAAAAAAAAABBBBBBBBBBCCCCCCCCDDDDDDEEEEFF3-30.用一元五角人民币兑换 5分、2分和1分的硬币共100枚,问共有多少种兑换方案? 每一方案中,每种硬币各多少枚?3-31 .分别用矩形法和梯形法求2I xsin(x)
22、dx3-32.求方程x-6x-1=0的根。第4章指针与数组习题4、选择题1. 下面对数组的定义正确的是A) int n=10; int arrayn;B) int array(10);C) int n; scanf(“%d,&n); int arrayn;D) int n; int arrayn; scanf(“ %s ,array);()'a' , b' , c' , e' , f' ;2. 下面各语句行中,能正确进行赋字符串操作的语句行是B) char s5=A) char s4 5= "abed"C) char
23、*s; s="abcd"D) char *s; sca nf(“S' ,s);3.正确的数组定义语句为A) int A()'a' ; B) int A3,5; C) int A;D) int *A3;4. 设已定义数组int array34;则对此数组正确的引用是()A) array1,2 B) array 14 C) array11+2 D) array(1)(3)5.设二维数组array有m列,则在arrayij之前的元素个数为()A) j*m+i B) i*m+j C) i*m+j-1 D) i*m+j+16. 若有以下说明和语句,选出哪个是对
24、c数组元素的正确引用in t c45, (*c p)5;cp=c;A) cp+1 B) *(c p+3) C) *(c p+1)+3D) *(*c p+2)7. 判断字符串s1是否大于字符串s2,则应当使用:()A) if(s1>s2)B) if(strcm p( s1,s2)C) if(strcm p( s1,s2)>0) D) if(strcm p( s2,s1)>0)8. 执行下列语句后,其输出结果为 ()#in clude<stdio.h>main () int *k, *j, i=100;j=&i; k=&j; prin tf("
25、;%dn", *k); A)运行错误 B) 100 C) i的地址9.以下程序的输出结果是()main () char cf35="AAAA","BBB","CC"prin tf(""%s"n",cf1);A) "AAAA"B) "BBB"10.设有如下的程序段:char str ="Hello"char *ptr;p tr=str;执行上面的程序段后,A) 'o'B) '0'二、填空题1 .指
26、针包括两部分而“ &”表示的含义是o2 如果P是一个指针,那么*&p表示的含义是D) j的地址C) "BBBCC"D) "CC"*(ptr+5)的值为(C)不确定的值D) 'o'的地址,在指针的概念中,“* ”表示的含义是,而&*p表示的含义是3. 已知数组s1为一有18个单元的整型数组,下面的语句的语句试图求出这18个单元的平均值,并用s保存这个值;请补充完整下面的语句。int j,s=; int s118;for(; j+);s=18;4. 下面程序段的功能是删除字符串s中出现的与字符c相同的字符;请补充完整下
27、面的语句。int i,j; char s100,c;for( i=0; ; i+)if(si=c)for() sj=sj+1;5. 统计从终端输入的字符中每个大写字母的个数。用#号作为输入结束标志,请填空。#in elude <stdio.h> #in clude <ctyp e.h>mai n() int nu m26,i; char c;for(i=0; i<26; i+) numi=0;while( !='#')/*统计从终端输入的大写字母个数*/if( isupp er(c) num c-65+=1;for(i=0; i<26; i+
28、)/*输出大写字母和该字母的个数*/,numi);if(n umi) prin tf("%c:%dn, i+三、写出以下程序的运行结果1.mai n() int a =2,4,6,8,* p=a,i; for(i=0;i<4;i+) ai=* p+; prin tf("%d,%dn",a2,*(- - p);2.mai n() int a =2,4,6,8,10,* p,*k;p=a; k=&p;prin tf("%d",*( p+);prin tf("%d n",*k);3.mai n() int a34=2
29、,4,6,8,10,12,14,16,18,20,22,24; in t (* p)4=a,i,j,k=0;for(i=0;i<3;i+) for(j=0;j<2;j+)k+=*(* (p+i)+j);prin tf("%d n",k);4.#i nclude <stdio.h>mai n() int a,b,c;int x=4,y=6,z=8;int *p 1= &x,* p2=&y,* p3;a=p仁=&x;b=3*(-* p1)/(* p2)+7;c=* (p 3=&z)=* p1*(* p2);prin tf(
30、"%d,%d,%dn",a,b,c);5.#in clude <stdio.h> mai n() int k=0,sig n,m;char s = -12345 ”; if(sk= =+' | sk=sig n=sk+= +-'1;?1:for(m=0;sk>= 0' &&sk<= 9' ;k+)m=m*10+sk- 0' printf("Result=%dn",sign*m);四、编程题1通过键盘输入 10 整数在一维数组中, 并且把该数组中所有为偶数的数, 放在另一个数组
31、 中。2对在一维数组中存放的 10整数进行如下的操作: 从第 3 个元素开始直到最后一个元 素,依次向前移动一个位置,输出移动后的结果。3在一个字符数组中存放“ AbcDEfg ”字符串,编写程序,把该字符串中的小写字母变 为大写字母,把该字符串中的大写字母变为小写字母。5 个字符串中4用字符指针变量,进行5 个字符串的输入,字符串大小的比较,并且输出最小的字符串。5从字符串中删除指定的字符。同一字母的大、小写按不同字符处理。若程序执行时 输入字符串为 : turbo c and borland c+ 从键盘上输入字符 :n, 则输出后变为 : turbo c ad borlad C+如果输入
32、的字符在字符串中不存在,则字符串照原样输出。6有 30 个学生,三门课程,用二维数组存放该信息;对数组的信息分别进行如下的操 作:( 1)输出每门课程的平均分( 2)输出每门课程的最高分、最低分(3)统计每门课程不及格人数。第 5 章 函数习题 5一、选择题较完整的描述是( )B) 由多个主函数与多个函数构成1. 在一个 C 语言程序构成中,A) 由主程序与子程序构成C) 由主函数与函数构成D) 由一个主函数与多个函数构成2. C 语言在程序开始执行时,A) 由编写程序语句的顺序格式执行C) 在第一个函数处执行3. 下列有关函数错误的描述是(A) C 语言中允许函数嵌套定义D)由人随机选择执行
33、B) C语言中允许函数递归调用其正确的描述是( )B) 在主函数 main() 开始处执行C) 调用函数时,实参与形参的个数、D) C 语言函数的缺省数据类型是4.在C语言中,各个函数之间具有的关系是(A)B)C)D)类型需完全一致int 类型) 不允许直接递归调用,也不允许间接递归调用允许直接递归调用,不允许间接递归调用 不允许直接递归调用,允许间接递归调用 允许直接递归调用,也允许间接递归调用5.在C语言中,函数的返回值的类型是由()A) C 语言的编译程序,在程序编译时决定B) 由调用该函数的主调函数所决定C) 由 return 语句的表达式的类型所决定则向函数传送的是 ( )D) 由定
34、义该函数时指定的函数类型所决定 6当调用函数时, 如果实参是一个数组名,A) 数组的首元素B)C) 数组每个元素的地址D)7对于以下程序,不正确的叙述是(#include<stdio.h> void f(int n); main() void f(int n);f(5);void f(int n) printf("%dn",n);数组的首地址 数组每个元素中的值/*/*A)若只在主函数中对函数函数说明函数说明*/*/f 进行说明,则只能在主函数中正确调用函数要求函数 f 无返回值,所以可用 void 将其类型定义为无值型 在主函数前对函数 f 进行说明,则在主函
35、数和其后的其它函数中都可以正确调用函比较两个字符串的大小 将字符串 s 接续到字符串 t 中B)C)数fC) 对于上面程序的说明, 编译时系统会提示出错信息: 提示对 f 函数重复说明8. 下面函数的功能是( )sss(s, t)char *s, *t; while(*s)&&(*t)&&(*t+=*s+); return(*s-*t); A) 求字符串的长度 B) C) 将字符串 s 复制到字符串 t 中 D)9以下程序的输出结果是long fun( int n) long s;if(n=1 | n=2) s=2;else s=n-fun(n-1);retur
36、n s;main() printf("%ldn", fun(3); A) 1 B) 2 C) 3 D) 410 请选出以下程序的输出结果()#include<stdio.h>sub(x,y,z)int X, y, *z; *z=y-x; ma in () int a, b, c;sub(10,5,&a); sub(7,a,&b); sub(a,b, &c); prin tf("%d,%d,%dn", a,b,c);A) 5,2,3 B) -5,-12,-7 C) -5,-12,-17 D) 5,-2,-7二、填空题两类
37、。1.在C语言中,除主函数外,其函数分为2 .变量在程序使用中,其作用域可分为变量和变量。3.以下程序调用findmax函数求数组中值最大的元素在数组中的下标,请补充填空。# in elude <stdio.h>fin dmax ( s , t , k )int *s , t , *k; int p; for(p=0,*k =p;p< t; p + + )if ( sp > s*k ); ma in () int a10 , i , k ;for ( i=0 ; i<10 ; i + + ) scan f("%d", &ai);fin
38、dmax ( a,10,&k );printf ( "%d,%dn" , k , ak);4.以下程序求a数组中的所有素数的和,函数isprime用来判断自变量是否为素数,请补充填空。#in elude <stdio.h>ma in ()int i,a10,* p=a,sum=O; prin tf("E nter 10 num:n"); for(i=0;i<10;i + + ) scan f("%d",& ai); for(i=0;i<10;i + + )if(isprime(*(p+ ) =
39、= 1) prin tf("%d",*(a+i);sum+=*(a+i); prin tf("nThe sum=%dn",sum); isp rime(x)int x; in t i; for(i=2;i<=x/2;i + + )if(x%i = = 0) return (0);5 .在下列程序中,其函数的功能是比较两个字符串的长度,比较的结果是函数返回较长 的字符串的地址。若两个字符串长度相同, 则返回第一个字符串的地址。#in clude <stdio.h>char * ( char *s, char *t)char *ss=s,
40、*tt=t;while(*ss) &&(*tt) ss+; tt+; if (*tt)return();elsereturn();mai n() char a20,b10,* p,*q;int i;gets( a);gets( b);prin tf("%sn",fu n (a, b );如何调用该函数。三、程序分析综合题1.下面程序的输出结果是什么?如何把该功能改写成一个函数,#in eludema in () char *p ="BOOL" ,OP K","H","S P"int i;f
41、or(i=3;i>=0;i-,i-) prin tf("%c", * pi ); 2.若有5门课程的成绩是:92.5,86, 70, 71.5, 50,则程序运行结果是多少,其函数执行什 么功能。#in clude<stdio.h>float fun ( float *a , int n ) int i; float sum=0;for(i=0; i<=n ;i+)sum+=ai;return(sum/n);ma in () float score30=90.5, 72, 80, 61.5, 55, aver;aver = fun( score, 5
42、 );prin tf( "nAverage score is: %5.2fn", aver);3 .若输入字符串"-1234",则程序运行结果是多少,其程序执行什么功能。#in elude <stdio.h>#in elude <stri ng.h> long fun ( char *p) long nn=0; int ss=1; if(*p)='-') p+; ss=-1; if(*p)='+') p+; while(*p) nn=nn*10-48+(*p+); return(nn*ss);mai
43、n() /* 主函数 */ char s6; long n; printf("Enter a string:n") ; gets(s); n = fun(s); printf("%ldn",n);4下列程序功能是将长整型数中每一位上为偶数的数依次取出,构成一个新数放在t 中。高位仍在高位,低位仍在低位。例如,当s中的数为:87653142时,t中的数为:8642。请改正程序中的错误,使它能得出正确的结果。#include <stdio.h>void fun (long s, long *t) int d; long sl=1;while (
44、s > 0) d = s%10;if (d/2=0) *t=d* sl+ *t; s = 10;main() long s, t; scanf("%ld", &s);*t = 0;sl *= 10; fun(s, &t);printf("The result is: %ldn", t);5下列程序功能是对M 行 M 列整数方阵求两条对角线上各元素之和。请改正程序中的错误,使它能得出正确的结果。#include <stdio.h>#define M 5int fun(int n, int x ) int i, j, sum
45、=0;for( i = 1 ; i <= n ; i+ )sum += x i i +x i n-i-1 ; return( sum );main( ) int aMM=1,2,3,4,5,4,3,2,1,0,6,7,8,9,0,9,8,7,6,5,3,4,5,6,7;printf ( "nThe sum of all elements on 2 diagnals is %d.",fun( M, a );四、编程题1 .编一函数,在100999中打印出所有的"水仙花数”。所谓"水仙花数”指一个三位数, 其各位数字立方和等于该数本身。 例如:153是
46、一"水仙花数 ",因为 153=13+53+332从键盘上输入多个单词,输入时各单词用空格隔开,用'#'结束输入。现编写一个函数把每个单词的第一个字母转换为大写字母, 其主函数实现单词的输入。3随机输入 20 个数存入一个数组中 , 然后输出该数组中的最小值。其中确定最小值的下 标的操作在 fun 函数中实现 ,请给出该函数的定义及完整的程序。4、编写函数 fun(char *str, int num 10),它的功能是: 分别找出字符串中每个数字字符(0,1, 2, 3, 4, 5, 6, 7, 8, 9)的个数,用num :0来统计字符0的个数,用num
47、 :门 来统 计字符1的个数,用num : 9来统计字符9的个数。字符串由主函数从键盘读入。5分别用普通方式和递归方式编写一个函数,其主要功能是把整数(包括负数)转换成 一个字符串第 6 章 编译预处理习题6一、基本知识题1 若有宏定义#define max(a,b) (a)>(b)?(a):(b) 下面的表达式将展开成什么?max(a,max(b,max(c,d)2用宏定义求 x 的平方,下面哪种写法最好?为什么? x*x(1)(2)(3)(4) 3如有下列宏定义#define#define#define#define#definePOWER(x)POWER(x)POWER(x) PO
48、WER(x)(x)*(x)(x*x)(x)*(x)x+1 y*x/2#define#define则执行下面语句后的输出是什么?int a;a=y; printf("%dn",z); printf("%dn",-a);4567定义一个宏,将小写字母变成大写字母。 输入两个整数,求它们相除的余数,用带参的宏实现。 分别用带参数的宏和函数,从 5个整数中找出最小值。 有一个变量, 可能是整型或实型中的一种类型,试用条件编译检查其类型。二、二级考试模拟题1单项选择题(1)以下有关宏替换的叙述不正确的是A .宏替换不占用运行时间C 宏替换只是字符串替换(B.宏名无
49、类型D 宏替换是在运行时进行的)。有下列程序#define A(x,y) x*y+3*y+x/y void main()int a,b;a=4;b=3;printf("%x" , A(b,a) ;)。C 18运行后的输出结果是 (D 0x18A. 15B 24及 int a=2,b=3; ,则执行 printf("%d",f(a,b)*f(a,b); 后的值为 (A 36B 25C 3)如果有 #define f(x,y) x+y11)。D 13如果程序中有 #include "文件名"则意味着 (A.将"文件名"
50、所指的那个文件的全部内容,)。在此命令行出现的这一点上,插入源程序。 B 指定标准输入输出。C.宏定义一个函数。D 条件编译说明。5 )以下程序段输出 sum 的值为( #define ADD(x) x+x main()。int m=1,n=2,k=3; int sum=ADD(m+n)*k; printf("sum=%dn",sum);A.sum=9B.sum=10(6)有如下宏定义C.sum=12D.sum=18#define N 2 #define Y(n) (N+1)*n) 则执行语句 z=2*(N+Y(5); 后的结果是(A 语句有错误B Z=34C Z=70)。
51、D Z 无定值2判断题(1)C 语言中的宏定义允许嵌套定义,也允许带参数。2)若有宏定义: #define M(x,y,z)x*y+z 则宏引用M(2+3,4+5,6+7)通过宏展开后的表达式应为(2+3)*(4+5)+(6+7) 。 (3) C 语言的编译系统对宏命令的处理是在C 源程序编译阶段完成的。 (3读程序写出结果(1)下列程序的运行结果是(#include <stdio.h>#define MIN(x,y) (x)<(y)?(x):(y) void main()int x=10,y=20,min; min=MIN(x-y,x+y)-10; printf("
52、;min=%dn",min);2) 执行下面程序的输出是( #define M 10#ifdef Mprintf("M=%dn",M);#elseprintf("M=%dn",M/2);#endif3) 执行下面程序的输出是(#define MAX(a,b) (a>b?a:b)+1main()int i=10,j=15;printf("%dn",MAX(i,j);4) 指出下面程序中的输出( define S(a,b) a*b#include <stdio.h>main()int i=4,j=6,k;k=S
53、(i+6,j+4);printf("k=%dn",k);(5) 下面程序的输出是( ) define PR(r) printf("%d",r);#include <stdio.h>main()int j,a=1,3,5,7,9,11,13,15,*p;p=a+5;for(j=3; j>0; j-)switch(j)case 1:case 2:PR(*p+); break;case 3:PR(*(-p);第 7 章 结构体、共用体、枚举类型,计算两个一、基本知识题 1使用两个结构体变量分别存取用户输入的两个日期(包括年、月、日) 日期之间相隔的天数。2有一高考成绩表:包括准考证号码(字符串)、考生姓名、考生类别、高考总分等信息。按准考证号码编一查分程序, 输出该考生的相关信息。 要求能给用户以提示信息 (按 键盘某一键后)实现循环查询。3输入一串整数,以 0 结束。把这些整数(不含 0)放入一单链表中,再按由大到 小的次序排列,最后将排好序的链表输出。4. 将一个链表按反序输出, 即将原表头当链表尾, 原链表尾当链表头。5口袋中有红、黄、蓝、白、黑 5 种颜色的球若干个。每次从口袋内取出三个球,问得到三种不同颜色的球的可能取法的总数,并打印出每种组合的三种颜色各是什么。二、二级考试模拟题1. 单项选择题(1) 已知
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- JJF 2308-2025标准物质研制(生产)实验室病原微生物生物安全通用要求
- 高功能计算项目按期交付承诺书(5篇)
- 走进大自然:春游体验作文7篇
- 2025年智慧物流物流物联网设备集成方案全景案例分析认证考核试卷
- 2025年互联网与信息技术岗位晋升考试DeFi去中心化金融应用考核试卷
- 2025年农业行业乡村振兴农村大气污染防治认证考核试卷
- 2025年乡村教育振兴乡村学校基建经费使用绩效水平考核试卷
- 解析卷人教版八年级上册物理声现象《声音的特性》重点解析试卷(解析版含答案)
- 难点解析-人教版八年级物理上册第5章透镜及其应用-透镜同步测评试卷(含答案解析)
- 考点解析人教版八年级物理上册第4章光现象达标测试试题(含答案解析)
- 人教版(新教材)高中物理选择性必修2学案1:4 1 电磁振荡
- 《数字故事培训》课件
- 中班科学教案可乐加盐
- 花卉市场发展现状及未来趋势分析
- 1.1 公有制为主体 多种所有制共同发展 课件-高中政治统编版必修二经济与社会
- 2024年新人教版五年级数学上册《教材练习9练习九》教学课件
- 晋升现实表现材料范文四篇
- 综测《中国近代史纲要》1-300 单选题附有答案
- 2024至2030年天津市大健康产业市场运行及投资策略咨询报告
- 【新教材】苏科版(2024)七年级上册数学第1-6章全册教案设计
- HSK标准教程5上-课件-L4
评论
0/150
提交评论