




已阅读5页,还剩35页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言习题集 习题一 一.填空题 1.C程序是由( )构成的,一个C程序中至少包含( ) .因此,( ) 是C程序 的基本单位. 2.C程序注释是由( ) 和( ) 所界定的文字信息组成的. 3.函数体一般包括( ) 和( ) . 二.判断题 1.一个C程序的执行总是从该程序的main函数开始,在main函数最后结 束. 【 】 2.main函数必须写在一个C程序的最前面. 【 】 3.一个C程序可以包含若干的函数.【 】 4.C程序的注释部分可以出现在程序的任何位置,它对程序的编译和运行 不起任何作用.但是可以增加程序的可读性.【 】 5.C程序的注释只能是一行.【 】 6.C程序的注释不能是中文文字信息.【 】 8.可以使用Turbo C来编译和连接一个C程序.【 】 9.可以使用Turbo C来运行一个C程序.【 】 10.可以使用Turbo C来实时调试(即动态调试)一个C程序.【 】 三.简答题 1. 写出一个C程序的基本结构. 2. 简要叙述使用Turbo C 2.0编译和运行一个程序的步骤. 四.编程题 1. 提高题:参照课本例1.1,试编写一个C程序,输出如下信息.(提示:使 用键盘上的一些符号). 2. 提高题:试编写一个C程序,输出如下信息. 试试看,可以输出其他组合图案吗 习题二 一.选择题 1,合法的字符常量是 . A) t B) “A“ C) a D)x32 2, 合法的字符常量是 . A) 084 B) 84 C) ab D)x43 3,是C语言提供的合法的数据类型关键字. A) Float B) signed C) integer D)Char 4,在以下各组标识符中,合法的标识符是. (1)A)B01 B)table_1 C) 0_t D) k% (2)A)Fast_ B) void C)pbl D) (3)A)xy_ B)longdouble C)*p D)CHAR (4) A) sj B)Int C)_xy D)w_y23 5,属于合法的C语言长整型常量的是 . A)5876273 B)0L C)2E10 D)(long)5876273 6,下面选项中,不是合法整型常量的是 . A)160 B)-0xcdg C)-01 D)-0x48a 7,判断int x = 0xaffbc;x的结果是 . A)赋值非法 B)溢出 C)为affb D)为ffbc 8,下面选项中,均是合法浮点数的是 . A)+1e+1 B)-.60 C)123e D)-e3 A)5e-9.4 B)12e-4 C)1.2e-.4 D).8e-4 A)03e2 B)-8e5 C)+2e-1 D)5.e-0 9,在C语言中,要求参加运算的数必须时整数的运算符是 . A)/ B)* C)% D) = 10,在C语言中,字符型数据在内存中以 形式存放. A)原码 B)BCD码 C)反码 D)ASCII码 11,下列语句中,符合语法的赋值语句是 . A)a=7+b+c=a+7; B)a=7+b+=a+7; C)a=(7+b,b+,a+7); D)a=7+b,c=a+7; 12,是非法的C语言转义字符. A)b B) 0xf C)037 D) 13,对于语句:f=(3.0,4.0,5.0),(2.0,1.0,0.0);的判断中, 是正确的. A)语法错误 B)f为5.0 C)f为0.0 D)f为2.0 14,与代数式(x*y)/(u*v) 不等价的C语言表达式是. A)x*y/u*v B)x*y/u/v C)x*y/(u*v) D)x/(u*v)*y 15,在C语言中,数字029是一个. A)八进制数 B)十六进制数 C)十进制数 D)非法数 16,C语言中整数-8在内存中的存储形式为 . A)1111111111111000 B)100000000001000 C)000000000001000 D)1111111111110111 17,对于char cx= 039;语句,正确的是. A)不合法 B)cx的ASCII值是33 C)cx的值为四个字符 D)cx的值为三个字符 18,若int k=7,x=12;则能使值为3的表达式是 . A)x%=(k%=5) B)x%=(k-k%5) C)x%=k-k%5 D)(x%=k)-(k%=5) 19,为了计算s=10!(即10的阶乘),则s变量应定义为 . A)int B)unsigned C)long D)以上三种类型均可 20,以下所列的C语言常量中,错误的是. A)0xFF B)1.2e0.5 C)2L D)72 21,假定x和y为double型,则表达式x=2,y=x+3/2的值是 . A)3.500000 B)3 C)2.000000 D)3.000000 22,设变量n为float型,m为int类型,则以下能实现将n中的数值保留小数 点后两位,第三位进行四舍五入运算的表达式是 . A)n=(n*100+0.5)/100.0 B)m=n*100+0.5,n=m/100.0 C)n=n*100+0.5/100.0 D)n=(n/100+0.5)*100.0 23,以下合法的赋值语句是 . A)x=y=100 B)d C)x+y D)c=int(a+b) 24,下选项中不属于C语言的类型是 . A)signed short int B)unsigned long int B)unsigned int D)long short 25,设以下变量均为int类型,则值不等于7的表达式是 . A)(x=y=6,x+y,x+1) B)(x=y=6,x+y,y+1) C)(x=6,x+1,y=6,x+y) D)(y=6,y+1,x=y,x+1) 26,在16位C编译系统上,若定义long a;,则能给a赋40000的正确语句是 . A)a=20000+20000; B)a=4000*10; C)30000+10000; D)a=4000L*10L; 二.填空题 1.在C语言中(以16位PC机为例),一个char数据在内存中所占字节数为 , 其数值范围为 ;一个int数据在内存中所占字节数为 ,其数值范围为 ; 一个long数据在内存中所占字节数为 ,其数值范围为 ;一个float数据 在内存中所占字节数为 ,其数值范围为 . 2.C语言的标识符只能由大小写字母,数字和下划线三种字符组成,而且 第一个字符必须为 . 3.字符常量使用一对 界定单个字符,而字符串常量使用一对 来界定若 干个字符的序列. 4.在C语言中,不同运算符之间运算次序存在 的区别,同一运算符之间运 算次序存在 的规则. 5.设x,i,j,k都是int型变量,表达式x=(i=4,j=16,k=32)计算后,x的值为 . 6.设x=2.5,a=7,y=4.7, 则x+a%3*(int)(x+y)%2/4为 . 7.设a=2,b=3,x=3.5,y=2.5,则(float)(a+b)/2+(int)x%(int)y为 . 8.数学式子 的C语言表达式为 . 9.数学式子 的C语言表达式为 . 10.已知:char a=a,b=b,c=c,i;则表达式i=a+b+c的值为 . 11.已知int a=12,n=5;则:表达式运算后a的值各为 . a+=a a-=2 a*=2+3 a/=a+a n%=(n%=2) a+=a-=a*=a 12.设int a; float f; double i ;则表达式10+a+i*f值的数据类型 是 . 13.若a为int型变量,则表达式 (a=4*5,a*2) , a+6的值为 . 14.假设所有变量均为整型,则表达式(a=2,b=5,a+,b+,a+b)的值为 . 15.已知a,b,c是一个十进制数的百位,十位,个位,则该数的表达式是 . 16.定义:double x=3.5,y=3.2;则表达式(int)x*0.5的值是 ,表达式 y+=x+的值是 . 17.定义:int m=5, n=3;则表达式m/=n+4的值是 ,表达式m=(m=1,n=2,n- m)的值是 ,表达式m+=m-=(m=1)*(n=2)的值是 . 18.表达式5%(-3)的值是 ,表达式-5%(-3)的值是 . 19.若a是int变量,则执行表达式a=25/3%3后,a的值是 . 20.数学式子 的C语言表达式为: . 三.判断题 1.在C程序中对用到的所有数据都必须指定其数据类型.【 】 2.一个变量在内存中占据一定的存储单元.【 】 3.一个实型变量的值肯定是精确的.【 】 4.对几个变量在定义时赋初值可以写成:int a=b=c=3;【 】 5.自增运算符(+)或自减运算符(-)只能用于变量,不能用于常量或表 达式.【 】 6.在C程序的表达式中,为了明确表达式的运算次序,常使用括号“()“.【 】 7.%运算符要求运算数必须是整数.【 】 8.若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型 数.【 】 9.在C程序中,逗号运算符的优先级最低.【 】 10.C语言不允许混合类型数据间进行运算.【 】 四.简答题 1.为什么C语言的字符型可以进行数值运算 2.简述a和“a“的区别. 3.程序:int m=12; m=15;为什么整型变量m的值在运算后不是当初的12, 而是15 4.将下面各数用八进制和十六进制数表示: 十进制 32 -1 -32768 2002 -128 0 八进制 十六进制 6.华氏温度F与摄氏温度c的转换公式为:c=(F-32)*5/9 ,则float c, F; c=5/9*(F-32)是其对应的C语言表达式吗 如果不是,为什么 五.程序阅读题 1.写出以下程序运行的结果. main ( ) char c1=a,c2=b,c3=c,c4=101,c5=116; printf(“a%c b%ctc%ctabcn“,c1,c2,c3); printf(“tb%c %c“,c4,c5); 2.写出以下程序运行的结果. main ( ) int i,j,m,n; i=8; j=10; m=+i; n=j+; printf(“%d,%d,%d,%d“,i,j,m,n); 六.编程题 1.假设m是一个三位数,则写出将m的个位,十位,百位反序而成的三位数 (例如:123反序为321)的C语言表达式. 2.已知int x=10,y=12;写出将x和y的值互相交换的表达式. 习题三 一.选择题 1.C语言的程序一行写不下时,可以. A)用逗号换行 B)用分号换行 C)在任意一空格处换行 D)用回车符换行 2.putchar ( )函数可以向终端输出一个. A)整型变量表达式值 B)实型变量值 C)字符串 D)字符或字符型变量值 3.执行下列程序片段时输出结果是. unsigned int a=65535; printf(“%d“,a); A)65535 B)-1 C)-32767 D)1 4.执行下列程序片段时输出结果是. float x=-1023.012 printf(“n%8.3f,“,x); printf(“%10.3f“,x); A)1023.012, -1023.012 B)-1023.012,-1023.012 C)1023.012,-1023.012 D)-1023.012, -1023.012 5.已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和 B,当从第一列开始输入数据时,正确的数据输入方式是 . int a1,a2; char c1,c2; scanf(“%d%c%c“, A)10A 20B B)10 A 20 B C)10A20B C)10A20 B 6.对于下述语句,若将10赋给变量k1和k3,将20赋给变量k2和k4,则应按 方式输入数据. int k1,k2,k3,k4; scanf(“%d%d“, scanf(“%d,%d“, A)1020 B)10 20 C)10,20 D)10 20 1020 10 20 10,20 10,20 7.执行下列程序片段时输出结果是. int x=13,y=5; printf(“%d“,x%=(y/=2); A)3 B)2 C)1 D)0 8.下列程序的输出结果是. main ( ) int x=023; printf(“%d“,-x); A)17 B)18 C)23 D)24 9.已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和 B,当从第一列开始输入数据时,正确的输入方式是. int a1,a2; char c1,c2; scanf(“%d%d“, scanf(“%c%c“, A)1020AB B)10 20 AB C)10 20 AB D)10 20AB 10.执行下列程序片段时输出结果是. int x=5,y; y=2+(x+=x+,x+8,+x); printf(“%d“,y); A)13 B)14 C)15 D)16 11.若定义x为double型变量,则能正确输入x值的语句是. A)scanf(“%f“,x); B)scanf(“%f“, C)scanf(“%lf“, D)scanf(“%5.1f“, 12.若运行时输入:12345678,则下列程序运行结果为. main ( ) int a,b; scanf(“%2d%2d%3d“, printf(“%dn“,a+b); A)46 B)579 C)5690 D)出错 13.已知i,j,k为int型变量,若从键盘输入:1,2,3,使I的值为1,j的值为 2,k的值为3,以下选项中正确的输入语句是. A)scanf(“%2d%2d%2d“, B)scanf(“%d_%d_%d“, C)scanf(“%d,%d,%d“, D)scanf(“i=%d,j=%d,k=%d“, 14.若int x,y; double z;以下不合法的scanf函数调用语句是 . A)scanf(“%d%lx,%le“, B)scanf(“%2d*%d%lf“, C)scanf(“%x%*d%o“, D)scanf(“%x%o%6.2f“, 15.有输入语句:scanf(“a=%d,b=%d,c=%d“,为使变量 a的值 为1,b的值为3,c的值为2,则正确的数据输入方式是 . A)132 B)1,3,2 C)a=1 b=3 c=2 D)a=1,b=3,c=2 二.填空题 1.一个C程序由若干个 文件组成,而一个这样的文件可以由若干个 和 以及 组成. 2.C语句可以分为 , , , 和 等5种类型. 3.C控制语句有 种. 4.一个表达式要构成一个C语句,必须 . 5.复合语句是用一对 界定的语句块. 6.printf函数和scanf函数的格式说明都使用 字符开始. 7.scanf处理输入数据时,遇到下列情况时该数据认为结束:(1) , (2) ,(3) . 8.已有int i,j; float x;为将-10赋给i,12赋给j,410.34赋给x;则对应 以下scanf函数调用语句的数据输入形式是 . 9.C语言本身不提供输入输出语句,其输入输出操作是由 来实现的. 10.一般地,调用标准字符或格式输入输出库函数时,文件开头应有以下 预编译命令: . 三.程序阅读题 1.用下面的scanf函数输入数据,使 a=3,b=7,x=8.5,y=71.82,c1=A,c2=a,问在键盘上如何输入 main ( ) int a,b; float x,y; char c1,c2; scanf(“a=%d b=%d“, scanf(“ %f %e“, scanf(“ %c %c“, 2.写出以下程序的输出结果. main ( ) int y=3,x=3,z=1; printf(“%d %dn“,(+x,y+),z+2); 3.写出以下程序的输出结果. main ( ) int a=12345; float b=-198.345, c=6.5; printf(“a=%4d,b=%-10.2e,c=%6.2fn“,a,b,c); 4.写出以下程序的输出结果. main ( ) int x=-2345; float y=-12.3; printf(“%6D,%06.2F“,x,y); 5. 写出以下程序的输出结果. main ( ) int a=252; printf(“a=%o a=%#on“,a,a); printf(“a=%x a=%#xn“,a,a); 6. 写出以下程序的输出结果. main ( ) int x=12; double a=3.1415926; printf(“%6d#,%-6d#n“,x,x); printf(“%14.101f#n“,a); 四.程序填空题 1.下列程序的输出结果是16.00,请填(1)空使程序完整. main ( ) int a=9,b=2; float x= 1 , y=1.1 , z; z=a/2+b*x/y+1/2; printf(“%5.2fn“,z); 五.编程题 1.已知a,b均是整型变量,写出将a,b两个变量中的值互换的程序来. 2.若 a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=a,c2=b. 想得到以下的输出格式和结果,请写出程序(包括定义变量类型和设计输 出). a= 3 b= 4 c= 5 x=1.200000,y=2.400000,z=-3.600000 x+y= 3.60 y+z=-1.20 z+x=-2.40 u= 51274 n= 128765 c1=a or 97(ASCII) c2=b or 98(ASCII) 3.设圆半径r=1.5,圆柱高h=3,求圆周长,圆面积,圆球表面积,圆球体积, 圆柱体积.用scanf输入数据,输出计算结果;输出时要求有文字说明,取 小数点后2位数字,请编写程序. 4.编程序:用getchar函数读入两个字符给c1,c2,然后分别用putchar和 printf函数输出这两个字符.并思考以下问题:(1)变量c1,c2应定义为字 符型或整型 或两者皆可 (2)要求输出C1和C2值的ASCII码,应如何处理 用putchar函数还是printf函数 (3)整型变量与字符型变量是否在任何 情况下都可以互相替代 如: char c1,c2 与 int c1,c2 是否无条件地等价 习题四 一.选择题 1.逻辑运算符两侧运算对象的数据类型. A)只能是0或1 B)只能是0或非0正数 C)只能是整型或字符型数据 D)可以是任何类型的数据 2.下列表达式中, 不满足“当x的值为偶数时值为真,为奇数时值为假“的 要求. A)x%2=0 B)!x%2!=0 C)(x/2*2-x)=0 D)!(x%2) 3.以下程序片段. int x=2,y=3; printf( ); A)什么都不输出 B)输出为:*x=2 C)输出为:#y=2 D)输出为:#y=3 4.能正确表示“当x的取值在1,10和200,210范围内为真,否则为 假“的表达式是. A)(x=1) ) A)if (a=b) x+; B)if (a=y) x=y;y=x; else x+;y+; printf(“%d,%d“,x,y); A)有语法错误,不能通过编译 B)若输入3和4,则输出4和5 C)若输入4和3,则输出3和4 D)若输入4和3,则输出4和5 10.若w=1,x=2,y=3,z=4,则条件表达式w0) +c; printf(“%d,%d,%d“,a,b,c); A)0,0,0 B)1,1,1 C)1,0,1 D)0,1,1 13.下述程序的输出结果是 . main ( ) int x=-1,y=4,k; k=x+B 则表达式(x else x=1; else x=0; 五.程序阅读题 1.若运行时输入100,写出以下程序的运行结果. main ( ) int a ; scanf(“%d“, printf(“%s“,(a%2!=0) “No“:“Yes“); 2.写出以下程序的运行结果. main ( ) int a=2,b=7,c=5; switch (a0) case 1: switch (b=A | | c=0); while (s) ; -s ; 7.下述程序段的运行结果是 . int a=1,b=2, c=3, t; while (a A)c=getchar( ) B)getchar( ) C)c=getchar( ) D)scanf(“%c“, while (k+50) break ; while (a=14) ; printf(“a=%d y=%dn“,a,y) ; 8.写出下面程序运行的结果. main ( ) int i,j,k=19; while (i=k-1) k-=3 ; if (k%5=0) i+ ; continue ; else if (k0) 22.下面叙述正确的是 . A)两个字符串所包含的字符个数相同时,才能比较字符串 B)字符个数多的字符串比字符个数少的字符串大 C)字符串“STOP “与“STOP“相等 D)字符串“That“小于字符串“The“ 23.下面有关字符数组的描述中错误的是 . A)字符数组可以存放字符串 B)字符串可以整体输入,输出 C)可以在赋值语句中通过赋值运算对字符数组整体赋值 D)不可以用关系运算符对字符数组中的字符串进行比较 24.下面程序的输出结果是 . main ( ) char ch7=“12ab56“; int i,s=0; for (i=0;chi0i+=2) s=10*s+chi-0; printf(“%dn“,s); A)1 B)1256 C)12ab56 D)ab 25.下面程序的输出结果是 . main ( ) char str =“SSWLIA“ , C; int k; for (k=2;(c=strk)!=0;k+) switch (c) case I : +k; break ; case L: continue; default : putchar(c) ; continue ; putchar(*); A)SSW B)SW* C)SW*A D)SW 二.填空题 1.在C语言中,二维数组的元素在内存中的存放顺序是 . 2.若有定义:double x35,则x数组中行下标的下限为 ,列下标的 下限为 . 3.若有定义:int a34=1,2,0,4,6,8,10;则初始化 后,a12的值为 ,a21得到的值为 . 4.字符串“abn012“的长度是 . 5.下面程序段的运行结果是 . char x =“the teacher“; int i=0; while (x+i!=0) if (xi-1=t) printf(“%c“,xi); 6.欲为字符串S1输入“Hello World!“,其语句是 . 7.欲将字符串S1复制到字符串S2中,其语句是 . 8.如果在程序中调用了strcat函数,则需要预处理命令 .如果调用了 gets函数,则需要预处理命令 . 9.C语言数组的下标总是从 开始,不可以为负数;构成数组各个元素具 有相同的 . 10.字符串是以 为结束标志的一维字符数组.有定义:char a=“;则 a数组的长度是 . 三.程序阅读题 1.写出下面程序的运行结果. main ( ) int a66,i,j ; for (i=1; i6 ; i+) for (j=1 ; j6 ; j+) aij=(i/j)*(j/i) ; for (i=1;i=0 ; i-) c=s0i+s1i-2*0; s0j = c % 10 + 0 ; for (i=0; i=0; j-) aj+1=aj ; a0=k; for (m=0 ; m6 ; m+) printf(“%d “,am); printf(“n“); 四.程序判断题 1.下面程序为数组输入数据并输出结果;判断下面程序的正误,如果错 误请改正过来. main ( ) int a3=3*0 ; int i; for (i=0; i4; i+) scanf(“%d“, for (i=0; i4; i+) printf(“%d“,ai); 2.下面程序为数组输入数据并输出结果;判断下面程序的正误,如果错 误请改正过来. main ( ) int a3=1,2,3 , i; scanf(“%d%d%d“, for (i=0; i3; i+) printf(“%d“,ai); 3.下面程序的功能是:先将在字符串s中的字符按逆序存放到t串中,然 后把s中的字符按正序连接到t串的后面.例如,当s中的字符串 为:“ABCDE“时则t中的字符串应为:“EDCBAABCDE“;判断下面程序的正 误,如果错误请改正过来. main ( ) char s80,t200; int i,sl ; gets(s); sl = strlen(s); for (i=0; i for (i=0; i puts(t); 4.下面程序的功能是:将n各无序整数从小到大排序;判断下面程序的正 误,如果错误请改正过来. main ( ) int a100, i, j, p, t, n=20 ; for (j = 0; j for (j = 0;j p = j; for ( i=j+1; iai) t=i; if (p!=j) t = aj; aj = ap; ap=t; for ( j = 0; j 五.程序填空题 1.下面程序可求出矩阵a的主对角线上的元素之和,请填(2)空使程序完 整. main ( ) int a33=1,3,5,7,9,11,13,15,17 , sum=0, i, j ; for (i=0 ; i3 ; i+) for (j=0 ; j3 ; j+) if (【1 】) sum=sum+【2 】; printf(“sum=%d“,sum); 2.下面程序将十进制整数base转换成n进制,请填(3)空使程序完整. main ( ) int i,base,n,j,num20 ; scanf(“%d“, scanf(“%d“,base) ; do i+; numi=【1 】; n=【2 】; while (n!=0); for (【3 】) ; printf(“%d“,numj) ; 3.下面程序的功能是输入10个数,找出最大值和最小值所在的位置,并 把两者对调,然后输出调整后的10个数,请填(3)空使程序完整. main ( ) int a10,max,min,i,j,k ; for (i=0; i10; i+) scanf(“%d“, max=min=a0; for (i=0; i10; i+) if (aimax) max=ai; 【2 】; 【3 】; for (i=0; i10; i+) printf(“%d“,ai); 4.下面程序用“插入法“对数组a进行由小到大的排序,请填(3)空使程序 完整. 经典算法提示: 简单插入排序算法的基本思想使将数组处理n-1次,第k次处理是将第k 个元素插入到目前的位置.第k次的元素是这样插入的:在第k次处理时, 前面的元素a0,a1,ak-1必定已排成了升序,将ak与ak- 1,ak-2,a0逐个比较(由后向前),若有ajaj ) 【2 】; j-; 【3 】=k ; for (i=0; i10; i+) printf(“%d“,ai); 5.下面程序用“两路合并法“把两个已按升序(由小到大)排列的数组合 并成一个新的升序数组,请填(3)空使程序完整. main ( ) int a3=5,9,10 ; int b5=12,24,26,37,48 ; int c10,i=0,j=0,k=0 ; while (i3 k+ ; j+ ; else ck=aj ; k+ ; i+ ; while (【2 】) ck=aj ; i+ ; k+ ; while (【3 】) ck=bj ; j+ ; k+ ; for (i=0; i 【1 】; printf(“n“); for (【2 】) bi0=ai2; for (i=0; i2 ; i+) for (j=0; i3 ; j+) printf(“%5d“,bij); 【3 】; printf(“n“); 7.下面程序的功能是在一个字符串中查找一个指定的字符,若字符串中 包含该字符则输出该字符在字符串中第一次出现的位置(下标值),否则 输出-1,请填(2)空使程序完整. # include main ( ) char c=a ; /* 需要查找的字符*/ char t50 ; int i,j,k; gets(t) ; i = 【1 】; for (k=0; k if (【2 】) j = k ; break ; else j=-1; printf(“%d“,j); 8.下面程序用“顺序查找法“查找数组a中是否存在某一关键字,请填(2) 空使程序完整. main ( ) int a10=25,57,48,371,123,291,18,22,44; int i=0,x ; scanf(“%d“, 【1 】; while (ai!=x) i+ ; if (【2 】) printf(“found=%dn“,i); else printf(“cant found!n“); 9.以下程序是求矩阵a,b的乘积,结果存放在矩阵C中并按矩阵形式输 出,请填(3)空使程序完整. main ( ) int a23=2,10,9,4,5,119, b22=-1,-2,-3,-4; int i,j,k,s,c32; for (i=0; I3; i+) for (j=0; j2; j+) 【1 】 for (k=0; k2; k+) s+=【2 】; cij=s; for (i=0; i3; i+) for (j=0; jS2,输出一个正数;如果S1=S2,输出0;如果S1 以上程序均使用gets或puts函数输入,输出字符串.不能使用string.h 中的系统函数. 习题七 一.选择题 1.以下正确的说法是. A)用户若需要调用标准库函数,调用前必须重新定义 B)用户可以重新定义标准库函数,如若此,该函数将失去原有定义 C)系统不允许用户重新定义标准库函数 D)用户若需要使用标准库函数,调用前不必使用预处理命令将该函数所 在的头文件包含编译,系统会自动调用. 2.以下正确的函数定义是. A)double fun(int x, int y) B)double fun(int x,y) z=x+y ; return z ; int z ; return z ; C)fun (x,y) D)double fun (int x, int y) int x, y ; double z ; double z ; z=x+y ; return z ; return z ; 3.以下正确的说法是. A)实参和与其对应的形参各占用独立的存储单元 B)实参和与其对应的形参共占用一个存储单元 C)只有当实参和与其对应的形参同名时才共占用相同的存储单元 D)形参时虚拟的,不占用存储单元 4.以下正确的函数定义是 . A)double fun(int x , int y) B)double fun(int x ; int y) C)double fun(int x , int y) ; D)double fun(int x,y) 5.若调用一个函数,且此函数中没有return语句,则正确的说法是 . A)该函数没有返回值 B)该函数返回若干个系统默认值 C)能返回一个用户所希望的函数值 D)返回一个不确定的值 6.以下不正确的说法是. A)实参可以是常量,变量或表达式 B)形参可以是常量,变量或表达式 C)实参可以为任意类型 D)如果形参和实参的类型不一致,以形参类型为准 7.C语言规定,简单变量做实参时,它和对应的形参之间的数据传递方式 是. A)地址传递 B)值传递 C)有实参传给形参,再由形参传给实参 D)由用户指定传递方式 8.以下程序由语法错误,有关错误原因的正确说法是. A)语句void prt_char( );有错,它是函数调用语句,不能用void说明 B)变量名不能使用大写字母 C)函数说明和函数调用语句之间有矛盾 D)函数名不能使用下划线 9.C语言规定,函数返回值的类型是由 决定的. A)return语句中的表达式类型 B)调用该函数时的主调函数类型 C)调用该函数时由系统临时 D)在定义函数时所指定的函数类型 10.以下正确的描述是. A)函数的定义可以嵌套,但函数的调用不可以嵌套 B)函数的定义不可以嵌套,但函数的调用可以嵌套 C)函数的定义和函数的调用均不可以嵌套 D)函数的定义和函数的调用均可以嵌套 11.若用数组名作为函数调用的实参,传递给形参的是. A)数组的首地址 B)数组中第一个元素的值 C)数组中的全部元素的值 D)数组元素的个数 12.假设调用函数有以下定义和函数f调用,则函数f中对形参数组错误 定义的是. char c5=a,b,0,c,0; printf(“%s“,c); A)f(int array6) B)f(int array3) C)f(itn array4) D)f(int array25) 13.如果在一个函数中的复合语句中定义了一个变量,则该变量. A)只在该复合语句中有定义 B)在该函数中有定义 C)在本程序范围内有定义 D)为非法变量 14.以下不正确的说法是. A)在不同函数中可以使用相同名字的变量 B)形式参数是局部变量 C)在函数内定义的变量只在本函数范围内有定义 D)在函数内的复合语句中定义的变量在本函数范围内有定义 15.以下不正确的说法是. A)形参的存储单元是动态分配的 B)函数中的局部变量都是动态存储 C)全局变量都是静态存储 D)动态分配的变量的存储空间在函数结束调用后就被释放了 16.下面程序的输出是. int i=2 ; printf(“%d%d%d“,i*=2,+i,i+) ; A) 8,4,2 B)8,4,3 C)4,4,5 D)4,5,6 17.已知一个函数的定义如下: double fun(int x, double y) 则该函数正确的函数原型声明为: A)double fun (int x,double y) B)fun (int x,double y) C)double fun (int ,double ); D)fun(x,y) ; 18.关于函数声明,以下不正确的说法是. A)如果函数定义出现在函数调用之前,可以不必加函数原型声明 B)如果在所有函数定义之前,在函数外部已做了声明,则各个主调函数 不必再做函数原型声明 C)函数再调用之前,一定要声明函数原型,保证编译系统进行全面的调 用检查 D)标准库不需要函数原型声明 19.以下不正确的说法是 . A)全局变量,静态变量的初值是在编译时指定的 B)静态变量如果没有指定初值,则其初值为0 C)局部变量如果没有指定初值,则其初值不确定 D)函数中的静态变量在函数每次调用时,都会重新设置初值 20.以下不正确的说法是. A)register变量可以提高变量使用的执行效率 B)register变量由于使用的是CPU的寄存器,其数目是有限制的 C)extern变量定义的存储空间按变量类型分配 D)全局变量使得函数之间的“耦合性“更加紧密,不利于模块化的要求 二.填空题 1.C语言函数返回类型的默认定义类型是 . 3.函数的实参传递到形参有两种方式: 和 . 4.在一个函数内部调用另一个函数的调用方式称为 .在一个函数内部 直接或间接调用该函数成为函数 的调用方式. 5.C语言变量按其作用域分为 和 .按其生存期分为 和 . 6.已知函数定义:void dothat(int n,double x) ,其函数声 明的两种写法为 , . 7.C语言变量的存储类别有 , , 和 . 8.凡在函数中未指定存储类别的局部变量,其默认的存储类别为 . 9.在一个C程序中,若要定义一个只允许本源程序文件中所有函数使用 的全局变量,则该变量需要定义的存储类别为 . 10.变量被赋初值可以分为两个阶段:即 和 . 三.程序阅读题 1.写出下面程序的运行结果. func (int a,int b) static int m=0,i=2; i+=m+1; m=i+a+b; return (m); main ( ) int k=4,m=1,p1,p2; p1=func(k,m) ; p2=func(k,m) ; printf(“%d,%dn“,p1,p2) ; 2.写出下面程序的运行结果. # define MAX 10 int aMAX, i ; su
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 厨房功能室活动方案策划
- 吉林彩钢板安装施工方案
- 定制家具施工方案怎么写
- 浙江活动方案策划制作团队
- 建筑方案设计深度标准要求
- 公司活动策划创意分享方案
- 2025法律职业资格考试真题含完整答案详解(典优)
- 【高考模拟】2026届高考全国一卷英语综合模拟强化练习 (含解析)
- 我们应该怎样学习议论文关于学习方法的话题(13篇)
- 2024医学检验(师)考前冲刺练习附答案详解AB卷
- DDI领导力学习地图
- 顾正田医生:子宫内膜异位症不孕处理
- 城乡规划管理与法规系列讲座城市规划依法行政案例
- 控制论与维纳
- 《红色旅游发展问题研究开题报告(含提纲)》
- GB/T 12718-2001矿用高强度圆环链
- 2023年山东省春季高考机械专业知识试题
- 舞蹈教学课件第五单元-中外舞蹈名作赏析
- 2023年中国外运股份有限公司招聘笔试模拟试题及答案解析
- 肱骨近端骨折Neer分型及治疗课件
- 中职数学基础模块上册课件-
评论
0/150
提交评论