C语言练习题一及答案_第1页
C语言练习题一及答案_第2页
C语言练习题一及答案_第3页
C语言练习题一及答案_第4页
C语言练习题一及答案_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言练习题一

一、填空题。(每空1分,共10分)

1.语句while(e==0):中的条件e==0等价于;答案:!e

2printf("%4s”,“beijing”);输出为::答案:beijing

3.C语言中的字符串以字符;答案:答案:\0

4.C语言可以处理的文件类型是和:答案:文本文件和二进制文件

5,int(*P)[5];说明p是:;答案:指向一维整形数组的指针变最

6.函数直接或间接地调用自己,被称为函数的;答案:递归

7.若有staticintx[5],x[4]的地址表示是:。答案:&x[4]或x+4

8.有程序段如下:

intx=l:

while(x<=10)

(x+=3;printf(x);}

则:函数pr函tf()执行次数是,循环结束后X的值是。答案:13

9.若有以下定义和语句,则sizeof(a)的值是,答案:12,而sizeof(b)的值是答案:4

struct(intday;charmonth;intyear;}a,*b;

10.若有staticcharc[10]="China";执行该语句后

c[l]=。答案:hc[5]=.答案:\0

c[6]=o答案:\0strlen(c)=。答案:5

11.若有Staticcharc[s]=(>a','b','\0*(零),'c','d');

printf("%s\n",c):则输出内容为:。答案:ab

12.下面程序把从终端读人的10个整数以二进制方式写到一个名为bi.dat的新文件中。请填空。

#include<stdio.h>

FILE*fp;

mainO

(

inti,j:

if((fp=fopen(,”wb“))==NULL)答案:bi.dat

exit(0):。

for(i=0;i<10;i++)

(

scanf(w%d”,&j):

fwrite(&j,sizeof(int),1,);答案:fp

fclose(fp);}

)

13.在C语言中,实现循环的语句有:if—goto语句、while语句、_do...whiIe一语句和for语句。

14.在递规函数中,一定要有_结束.递归调用的语句。

15.数组inta网的第四个元素是一a[3]一。

16.根据函数能否被其它源文件中的函数调用,将函数分为内部函数和空部函数。

17.执行以下程序后,其输出结果为-9

#include"stdio.h"

#defineMAX(a,b)(a)>(b)?(a):(b)

main()

{printf(,'%d',,MAX(5+4,l+3));

return(I);

}

18.结构化程序设计的基本结构有三种,分别是顺序结构、分支结构和一循环_结构。

二、判断题。(每题1分,共10分)

(X)1.在C语言中,continue语句的作用是结束循环语句的执行。

(X)2.2/3*3的值是2。

(X)3,5«2+1的值是21。

(X)4.!!6的值为6。

(X)5.printf(w%0",12);输出为⑵

(X)6.doswhile(3>2):中s必执行无穷多次。

(X)7.两个指向整型的指针变量可以做减法运算。

(X)8.语句if3>10printf(*whyw);是正确的C语句。

(7)9,inti,*P=&i:是正确的C说明。

(V)10.unsigned和void在C中都是保留字。

(义)11.C语言允许函数的类型:Long类型可以缺省。

(X)12.字符型数据和实型数据之间可以通用。

(X)13.当从键盘输入数据时,整型变量只能输入整型数,实型变量只能输入实型数。

(X)14.语句inta[5]={l,2,3,4,5),是合法的。

(X)15.逗号表达式是没有值和类型的。

(X)16.用数组名作为函数的实参,传递给形参的是数组第-个元素的值。

(X)17.若有inti=0:则执行while(i=10)printf(“?”);无任何输出。

(J)18.任何字都可以用转义序列的方法来表示。

(J)19.C语言中字符(char)型数在内存中以ASCII码形式存储,而整型(int)数据以补码形式存储。

(7)20.return语句中的表达式可以不加括号。

三、选择题。(每题2分,共10分)

1.题1.1一个C程序的执行时从。答案:(A)

A)本程序的main函数开始,到main函数结束

B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束

C)本程序的main函数开始,到本程序文件的最后一个函数结束

D)本程序文件的第一个函数开始,到本程序main函数结束

2.题1.4C语言规定:在一个源程序中,main函数的位置___。答案:(C)

A)必须在最开始

B)必须在系统调用的库函数的后面

C)可以任意

D)必须在后面

3.题2.1在C语言中(以16位PC机为例),5中基本数据类型的存储空间长度的排列顺序为—。答案:

A

A)char<int<longint<=float<dDuble

B)char=int<longint<=float<doublo

C)char<int<longint=float=double

D)char=int=longint<=float<double

4.题2.3假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是___。答案:B

A)7B)806D)2

5.题2.14下面正确的字符常量是。答案:C

A)"c"B)'C)N'D)"

6.题2.23以下不正确的叙述是。答案:D

A)在C程序中,逗号运算符的优先级最低

B)在C程序中,APH和aph是两个不同的变量

0若a和b类型相同,在执行了复制表达式"b后b中的值将放入a中,而b中的值不变。

D)当从键盘输入数据时,对于整形变量只能输入整形数值,对于实型变量只能输入实型数值。

7.题2.26已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'6'-'3';

后,c2中的值为o答案:A

A)DB)68C)不确定的值D)C

8.题2.27在C语言中,要求运算数必须是整型的运算符是o答案:D

A)/B)++C)!=D)%

9.题2.29在C语言中,int、char和short二种类型数据在内存中所占用的字节数。答案:D

A)由用户自己定义B)均为2个字节C)是任意的D)由所用机器的机器字长决定

10•题2.42若有以下定义,则能使值为3的表达式是。答案:C

intk=7,x=12;

A)x%=(k%=5)B)x%=(k-k%5)C)x%=k-k%5D)(x%=k)-(k%=5)

11.题3.1putchar函数可以向终端输出一个。答案:D

A)整型变量表达式值B)实型变量值C)字符串D)字符或字符型变量值

12.题3.9已有如下定义和输入语句,若要求al,a2,cl,c2的值分别为10,2(),A和B,当从第一列开始

输入数据时,正确的数据输入方式是_____。答案:C

A)10A120B<CR>B)1()A-201B<CR>C)10A20B<CR>D)10A201-1B<CR>

13.题3.19以下能正确地定义整型变量a,b和c并为其赋初值5的语句是___。答案:A

A)inta=b=c=5;

B)inta,b,c=5;

C)a=5,b=5,c=5;

D)a=b=c=5;

14.题3.24设x、y和z均为int型变量,则执行语句x=(y=(z=10)+5)-5;后,x、y和z的值是____。答

案:A

A)x=10y=15z=10

B)x=10y=10z=10

0x=10y=10z=15

D)x=10y=5z=10

15.题4.1逻辑运算符两侧运算对象的数据类型。答案:D

A)只能是。和1

B)只能是()或非0正数

0只能是整型或字符型数据

0)可以是任何类型的数据

16.题4.2以下关于运算符优先顺序的描述中正确的是。答案:C

25•题7.27凡是函数中未指定存储类别的局部变量,其隐含的存储类别为。答案:A

A)自动(auto)

B)静态(static)

0外部(extern)

D)寄存器(register)

26.题8.8C语言的编译系统对宏命令的处理是。答案:D

A)在程序运行时进行的

B)在程序连接时进行的

C)和C程序中的其它语句同时进行编译的

D)在对源程序中其它成份正式编译之前进行

27.题9.9变量的指针,其含义是指该变量的。答案:B

A)值B)地址C)名D)一个标志

28•题10.2当说明一个结构体变量时系统分配给它的内存是。答案:A

A)各成员所需内存量的总和

B)结构中第一个成员所需内存量

0成员中占内存量最大者所需的容量

D)结构中最后一个成员所需内存量

29.题11.10若x=2,y=3则x&y的结果是。答案:B

A)0B)203D)5

30.题12.10fwrite函数的一般调用形式是。答案:D

A)fwrite(buffer,count,size,fp);

B)fwrite(fp,size,count,buffer);

C)fwrite(fp,count,size,buffer);

D)fwrite(buffer,size,count,fp);

31.表达式(float)(5/2)>2.4的值为(A):

A.0B.1C.trueDofalse

32.若说明inta=10,b=15;则表达式20*a<b?a:b;的值为(B):

A.10B.15C.230D.300

33.以下程序运行后,输出结果为(C):

#include<stdio.h>

#ir)clude<string.h>

fun(char*w,intn)

{chart,*sl,*s2;

sl=w;s2=w+n-l;

while(si<s2)

{t=*sl++;

*sl=*s2—;

*s2=t;

}}

mainO

{charp[20]="1234567";

fun(p,strlen(p));

puts(p);

)

A)123567B)7654321C)17II7I7D)7I77I71

34.若有如下说明,则strlen(sl)+strlen(s2)的值为(A):

staticcharsi[5]={Ta','b','\n','\0'(零)c'};

staticchars2[]="string”;

A)9B)8C)12D)ll

35.若说明intx=0,y=2:则语句if(x=O)y++;执行后y的值为(B):

A)1B)203D)4

36.i=10:则执行后i的值为(B):

A)10B)0C)1D)ll

37.若说明inta=l,b=2,c=3:表达式a〈b!=0的值为(B):

A)0B)102D)3

38.有以下程序,其for语句中循环体执行的次数是(C):

#include<stdio.h>

^defineN2

ttdefineMN+l

^defineNUM(M+l)*M/2

main()

{inti,n=0;

for(i=l;i<=NUM;i++)

{n++;

printf("%d〃,n);

}

printfC\n?,);

)

A)5B)608D)9

39.以下程序执行后,a的值是为(C):

#include<stdio.h>

main()

{inta,k=4,m=6,*pl=&k,*p2=&m;

a=pl==&m;

printf(“为d\n",a);

A)4B)1C)0D)运行时出错,a无定值

40.下列变量名中合法的是(A)

(A)_6a7b(B)55x6(C)m.*.Tom(D)+[ABC]

41.整型变量x=l,y=3,z=5,有如下几个表达式:

(1)x=(x=l+2,z*2,9)

(2)x=y>2?9:(10-z)

(3)x=y*4/2+z-z%3

(4)x=9-(—y)-(—y)

上面有(C)个表达式的计算结果相同。

(A)1(B)2(C)3(D)4

42.有单精度变量x和y=12.5,表达式:x=3*(int)y+((int)y)%4执行后,x的值为(D)

(A)36.500000(B)37.500000(039.500000(D)36.000000

43.为表示关系xNyNz,正确的C语言表达式是(A)

(A)(x>=y)&&(y>=z)(B)(x>=y)AND(y>=z)

(C)(x>y>z)(D)(x>y)&(y>z)

44.变量在程序中的应用很灵活,下面的说法中(A)是正确的

(A)变量在引用之前要定义其存储的数据类型

(B)整型变量和指向整型变量的指针实际上没有太多区别

(C)指针不能指向指针变量,否贝I逻辑出错

(D)只有有限的变量可以通过指钎来引用,因此要注意指针的用法

45.有如下代码:

^include"stdio.h"

main()

{intj=Lk=5,m;

while(j>0)

{m=k+j;

k-;

j++;

printf("%d'n"J);

)

I

根据运行结果,下面说法正确的是(A)。

此程序由于j的起始值为1,循环条件为j>0,在循环体中又有j++语句,因此,此程序为无法休止的循环

由于程序中有k-语句,这样,k的值在某个运算时刻会小于(),根据循环条件,此循环将由7k值变化,

运行终止

此程序可以正常结束

此程序有语法逻辑问题,编译无法通过

46.有如下的函数调用语句,则funl的实际参数的个数是(A)

fun1(fun2(x,y),(x,y),z=x+y);

(A)3(B)7(C)4(D)5

47.下面说法中正确的是(C):

(A)宏定义,定义了一个变量,这个变量的值在整个程序的运行过程中是不变的

(B)全局变量定义了一个变量,这个变量的值在整个程序的运行过程中是不变的

(C)全局变显和宏定义的概念是不一样的,他们之间有质的区别

(D)全局变量和宏定义的概念基本是一样的,可以混合使用

48.关于结构体,下面说法中正确的是(D):

(A)结构体数组的元素只能是整型数

(B)如果把一个结构体嵌套到另一个结构体中,那么这个结构体成员除整型、实型数据外,其他的不能使用,

尤其不能用字符型数据

(C)指针不能指向结构体

(D)结构体可以嵌套定义,如把一个结构体嵌套到另一个结构体中

49.下面说法正确的是(C)

(A)结构体数组与整型数组类似,所有数据的个数就是数组的长度

(B)结构体数组中的每个数组元素拥有的成员,其数据类型是一致的

(C)结构体数组中的每个数组元素拥有的成员,其数据类型不一•定一致

(D)由于结构体比较复杂,结构体数组中的每个数组元素拥有的成员的数据类型无法确定

50.字符型常量在内存中存放的是(A)

(A)ASCII码(B)BCD代码

(C)内部码(D)十进制码

51.单精度变量x=3.0,y=。。,下列表达式中y的值为10.0的是(B)

(A)y/=x*27/4(B)y+=x+3.0

(C)y-=x+8.0(D)y*=x-3.0

52.有一字符型变量str,欲判断str是否为一小写字母,下列正确的方法为(D)

(A)if(str>=65&&str<=90)(B)if(str<=97)

(C)if(str>=122)(D)if(str<=122&&str>=97)

53.以下说法中不正确的是(A)

(A)在C语言程序中,main。函数可以根据需要定义多个

(B)C语言程序总是从main。函数开始执行

(C)C语言程序中某些变量可以定义在main。函数之前

(D)C语言程序中的main()函数可以出现在任何函数后面

54.函数fopen()的第一个参数是文件名(可带路径),下面哪一个选项作此参数在格式上完全

正确(B)

(A)“e:\aaa\\file”(B)“c:\\ccc\\file”

(C)af:\Wbbb\Wfile(D)“d:\\ddd\file”

55.下面说法中正确的是(A)

(A)一个数组只允许存储同种类型的变量。

(B)在对数组进行初始化时,若给定的数据元素个数比数组长度值大时,多余的数组元素

会被自动初始化为0。

(C)由于数组名为常量,因此,不能给数组名赋任何形式的量。

(D)当为数组赋值时,数组获得它在系统中的首地址。

56.关于函数调用,下面说法正确的是(B)

(A)函数的嵌套调用必须有结束嵌套调用的条件判断语句。

(B)在函数的调用过程中,能直接或间接调用函数的本身。

(C)递归调用就是随便调用一个已经定义的函数。

(B)在函数的调用过程中,不能直接或间接调用函数的本身。

57.下列说法中正确的是(D)

(Ai枚举类型中的枚举元素由变量构成。

(B)枚举类型的枚举元素只能从0开始,以1为步长递增。

(C)可以用枚举类型数据定义联合体。

(D)一个2字节的整型数不能直接赋给一个枚举型变量。

58.关于联合体,下面说法正确的是(D)

(A)联合休可以很方便地嵌套到结构体中,不过嵌套数量只能有3个。

(B)联合体就是联合了大量数据的一种结构体,不过只有联合体中的成员只有第一个初始化的

有效。

(C)联合体成员个数有一定限制,一般不超过8个二进制位。

(D)以上说法都不对。

59.下面说法正确的是(A)

(A)如果指针型变量做函数的实参,那么形参也必须是指针型变量。

(B)函数的形参,其数据类型要一致,至于形参个数,没有严格限制。

(C)形参中如果有不同类型的参数,要按字节数大小排列,如字符型排在前面,其次是整型,

然后是实型等,这样便于数据的管理。

(D)以上说法都不对。

60.在C语言中,如果下面的变量都是int类型,则输出的结果是(A)

sum=pad=5;pad=sum++,pad++,++pad;

printf(、'%d\n〃,pad);

A)7B)605D)4

61.以下程序的输出结果是(B)

#include<stdio.h>

main()

{

inti=010,j=10;

printf(a%d,%d\n”,++i,j―);

}

A)ll,10B)9,10C)010,9D)10,9

62.已知在ASCH代码中,字母A的序号为65,以下程序的输出结果是(B)

#include<stdio.h>

main()

charcl='A',C2='Y';

printf(u%d,%d\n",cl,c2);

A)因输出格式不合法,输出错误信息B)65,90

C)A,YD)10,9

63.设有说明int(*ptr)[M];其中的标识符ptr是(C)

A)M个指向整型变量的指针;

B)指向M个整型变量的函数指针;

0一个指向具有M个整型元素的一维数组的指针;

D)具有M个指针元素的一维指针数组,每个元索都只能指向整型量。

64.以下程序的输出结果是(B)。

#include(stdio.h>

main()

{printf(''%d\n〃,NULL);

)

A)不确定的值B)0C)-1D)1

65.以下函数调用语句中含有(B)个实参。

Func((expl,exp2),(exp3,exp¥4,exp5));

A)1B)2C)4D)5

66.设有以下语句:

chara=3,b=6,c;

c=a*b«2;

则c的二进制值是(A)

[9]A)00011011B)00010100

C)00011100D)00011000

67.下面的程序中(C)有错误[每行程序前面的数字是行号)。

1#iuclude<stdio.h>

2main()

3{

4floata[3]={0.0);

5inti;

6for(i=0;i<3;i++)scanf(〃%d〃,&a[i]);

7for(i=l;i<3;i++)a[0]=a[0]+a[i];

8printf(〃%f\n〃,a[0]);

A)没B)第4行C)第6行D)第8行

68.有如下程序段,其输出结果为(C)

structstudent

{intnum;

longintage;

charnamel20J;

floatscore;

charabc;

}a;

printR“%d”,sizcofta));

(A)7(B)30(C)36(D)不确定

69.以下程序的输出结果是(D)

#include<stdio.h>

main()

{intx=44,y=55;

printf("%d%d\n",++x,--y);

)

(A)4454(B)4555

(C)4455(D)4554

70.下面程序有两个printf语句,如果第一个printf语句输出的结果是194.则第二个prinlf语句的输出结

果是(A)

#include<stdio.h>

main()

{inta[20]={1,2,3,4,5,6,7,8,901U2/3,14』5},*p;

p=a;

printf("%x'n",p);

printf("%x\n",p+5);

)

(A)208(B)199(C)19e(D)la4

71.下列程序执行后输出的最后一行的结果是(B)

#include<stdio.h>

intf(inta)

{staticc=3;

a=C++;

printf("\na=%d,c=%d",a,c);

return(a);

)

voidmain()

{inta=2,i,k;

for(i=0;i<50;i++)

k=f(a++);

printf("\n%d\n",++k);

1

(A)106(B)53(C)52(D)104

72.设有如下程序,请问程序运行的结果选项为(A):

#include<stdio.h>

main()

{typedefunion

{longk;

intm[2];

charc;

JDATE;

structdate

{intdog;

DATEcat;

doublemouse;

}zoo;

DATEmax;

printf("%x",sizeof(structdate)+sizeof(max));

)

(A)20(B)18(C)14(D)16

73.执行以下程序后,y的值是(C)

#include“stdio.h”

voidmain()

{inta[]={2,4,6,8,10};

iniy=l,x,*p;

p=&a[l];

for(x=0;x<3;x++)

y+=*(p+x);

printf("%d\n",y);

I

(A)17(B)18(C)19(D)20

74.下列程序执行后输出的结果是(B)

#include"stdio.h"

intd=l5;

fun(intp)

{intd=25;

d-=p—;

printf("%d\n",d);

)

main()

{inta=3;

fun(a);

d-=a++;

printf("%d\n",d);

)

(A)222(B)2212(C)200(D)210

75.有如下程序段,此程序段执行后的输出结果为(D)

include"sldio.h"

main()

{

unionuu

{inta;

floatx;

);

structnun

{char*p;

unionuuy;

}bl;

bl.y.a=10;

bl.p="student";

printf("%d'\2*sizeof(structmm));

(A)12(B)8(C)7(D)16

76.有如下程序段,其输出结果是(C)

staticcharstr[]={"l,2,3,4”};

printf(4t%cstr[4]);

(A)1,2,3,4(B)4(C)3(D)2

77.下面程序的运行结果为(B)

#include"stdio.h"

voidmain()

{staticintj=5,i,k;

int*p=&j;

i—;

if(*p<j)

for(;i<3;i++)

k=*p+i;

i=i*j+2;

printf(“%d",*p+l);

)

(A)7(B)6(C)8(D)3

四、阅读程序写出程序的执行结果。共30分。

1.

#include<stdio.h>

main()

{intx=44,y=55;

printf("%d%d\n",++x,-y);

结果:4554

〃2.读程序

^include<stdio.h>

ttinclude"string.h"

main。

{char*p2,str[20]="AAAAAAAAAA";

charp1[20]=,'BBBB,';

p2="CCCC,;

printf("%s\n",p1);

',,,

printF(%s\nfp2);

strcpy(str+3,strcat(p1+3,p2+3));

printF("%s\n",str);

3.

#include<stdio.h>

main()

{typedefunion

{longk;

intm|2J;

charc;

}DATE;

structdate

{intdog;

DATEcat;

doublemouse;

}zoo;

DATEmax;

printf("%x'\sizeof(s(ructdate)+sizeof(max));

)

结果:20

4.

#include"stdio.h"

intd=l5;

fun(intp)

{intd=25;

d-=p—;

printf("%d\n",d);

)

niain()

{inta=3;

fun(a);

d-=a++;

printf("%d\n",d);

)

结果:22

12

5.下面程序的输出结果为0

#include"stdio.h*'

voidmain()

{inta[2][3]={{15,30,20},{14,-32,15));

inti=1,j=0,k,lmp;

int*p;

p=&a[i]|jl;

for(k=l:k<3;k++)

{

for(j=0;j<2y++)

if(a[i]U]<a[i]U+l])

{tmp=*(p+j);

*(P+j)=*(Pti+O;

*(p+j+l)=tmp;

for(i=0;i<2;i++)

|

for(j=Oy<3;j++)

printf("%d",a[i][j]);

printf("\n");

)

}

结果:153020

1514-32

6.

#include"stdio.h"

voidmain()

{staticintj=5,i,k;

int*p=&j;

i-;

if(*p<j)

for(;i<3;i++)

k=*p+i;

i=i*j+2;

piintf("%d",*p+l);

结果:6

7.下面程序的输出结果是:

main()

inti=3.j=2;

char*a="DCBA”;

printf("%c%c\n",a[i],aUD;

结果:AB

8.main()

{intk;

scanf("%d”,&k);

switch(k)

{case1:prinlf(“%d”.k-H-);

case2:printf(“%d”,k++):

case3:prinlf("%d",k++);

case4:printf("%d”,k++):break:

default:printf(44full!\n");

})

输入为1时,输出的结果是:答案:1234

输入为4时,输出的结果是:答案:4

9.

intx1=30,x2=40;

voidmain()

{intx3=10,x4=20;

voidsub();

sub(x3,x4);

sub(x2,xI);

printf("%d,%d,%d,%d\n",x3,x4,x1,x2);

}

voidsub(intx,inty)

{xl=x;

x=y;

y=xl;

}

答案:10,20,40,40

10.输出结果是

voidmain()

(

inti,j;

for(i=l;i<5;i++)

(

for(j=l;j<10-i;j++)

printfC'");

for(j=l;j<i+ly++)

printf("#");

printf("\n");

)

)

答案:

"D:\PrograMFiles\Micro

UU

uunu

Pressanykeytocontinue

11.输出结果是°

inig(inti,intj)

{if(i==j)

reltrn(i);

else

{while(i>j)

rcturn(g(j,i));

voidmain()

{

printf("%d\n",g(144,132));

}

答案:12

12.#defineM5

voidmain()

(

inti,j,k;

for(i=0;i<M;i++)

(

for(j=M-i;ju-)printf("");

for(k=0;k<=i;k++)printf("%c”,i+'A');

printf(u\n");

}

for(i=M-l;i;i-)

printf("");

for(j=0;j<M;j++)printf("%c",i+'a');

printf("\n");

)

答案:

c'*D:\Progra>FilesMicro

A

BB

CCC

DDDD

EEEEE

eeeee

ddddd

ccccc

bbbbb

(Pi*essanykeytocontinue

14.main()

(

intx=l,y=0,a=0,b=0;

switch(x)

{

case1:switch(y)

(

case0:a+=l;break;

case1:b+=l;break;

)

case2:a+=l;b+=l;break;

case3:a+=l;b+=l;

)

,?,,

printf(a=%d,b=%d\n,a,b);

)

答案:a=2,b=l

17.#include<stdio.h>

main()

(

intfindm(int[],int);

inta[10]={10,2,-5,0,7,31,-11,8,17,132);

intmv,(*fp)(int[],int);

fp=findm;

mv=(*fp)(a,10);

printf("mv=%d\n”,mv);

)

intfindm(intx[],intn)

(

inti,m;

m=x[0];

for(i=0;i<10;i++)

if(m<x[i])

m=x[i];

return(m);

}

答案:mv=132

18.main(intargc,char*argv[])

(

ihti;

for(i=l:i<argc;i++)

(

printf(v%s”,argv[i]);

if(i<argc-l)

printf("”);

else

printf('\n");

)

}

命令行为:howdoyovdo

答案:howdoyoudo

19•题4.61若运行时输入:16〈回车),则以下程疗的运行结果是o答案;your$.0yuan/hour

#include<stdio.h>

voidmain(void)

{

intyear;

printf(wInputyouryear:“);

scanf(a%dff,&year);

if(year>=18)

printf("your$4.5yuan/hourw;

else

printf(^your$3.0yuan/hour");

)

20.题7.37以下程序的运行结果是<,答案:maxis2

#include<stdio.h>

voidmain()

(

inta=l,b=2,c;

c=max(a,b);

printf("maxis%d\n',c);

)

max(intx,inty)

{

intz;

z=(x>y)?x:y;

return(z);

)

21.题7.56下面程序的运行结果是o答案:15

#include"stdio.h"

voidmain()

(

inti=5;

printf("%d\n”,sub(i));

)

sub(intn)

(

inta;

if(n==l)return1;

a=n+sub(n-l);

return(a);

)

22.题7.77以下程序的运行结果是o答案:8

^include<stdio.h>

inta—3,b—5;

max(a,b)

(

intc;

c=a>b?a:b;

return(c);

)

voidmainO

(

inta=8;

printf(飞d”,max(a,b));

)

23.题5.54下面程序的运行结果是。答案:x=8

#include<stdio.h>

voidmain()

(

inti,j,x=0;

for(i=0;i<2;i++)

(

x++;

for(j=0;j<=3;j++)

(

if(i%2)continue;

x++;

)

x++;

)

printf("x=%d\n”,x);

)

24.下面程序的输出结果是__________o

#include<stdio.h>

voidmain()

(

inti=3,j=2;

char*a="DCBA“;

printf(n%c%c\n",a[i],a[j]);

)

25.下面程序的输出结果是一

#include<stdio.h>

Voidinvert(ints[],inti,intj);

intmain()

{inta[6]={10,20,30,40,50,50},i;

invert(a,0,5);

for(i=0;i<6;i++)

printf("%d",a[i]);

return0;

)

Voidinvert(ints[],inti,intj)

{intt;

if(i<j)

(

invert(s,i+1,j-1);

t=s[i];s[i]=s[j];s[j]=t;

)

)

26.

#include<stdio.h>

voidsub(intx,inty);

intxl=30,x2=40:

intmain()

{intx3=10,x4=20;

sub(x3,x4);

sub(x2,xl);

printf("%d,%d,%d,%d\n”,x3,x4,xl,x2);

return0;

}

Voidsub(intx,inty)

{xl=x;

x二y;

y=xl;

}

步出结果是.._

,・E:\c语言3班\Debu...豆卜回、

10,20,40,40

Pressanykeytocontinue

||.J

27.下面癌序输出自果是。

#include<stdio.h>

intg(inti,intj);

intg(inti,intj)

{

if(i==j)

return(i);

else

(

while(i>j)

i-=J;

return(g(j,i));

)

)

voidmain()

{printf(“%d\n”,g(144,132));

)

■,E:\c语言3班\Debug.101回

七2

Pressanykeytocontinue

28.下面程序输出结果是

#include<stdio.h>

voidmainO

intx=l,y=0,a=0,b=0;

switch(x)

(

case1:switch(y)

(

caseO:a+=I;break;

case1:b+=l;break;

)

case2:a+=l;b+=l;break;

case3:a+=l;b+=l;

)

printf(z,a=%d,b=%d\n,\a,b);

}___

■・E:\c语言3班\Debug\lll」=」回口

a=2,b=l

Pressanykeytocontinue

五、程序填空。

根据程序功能,完善下列程序。(每空2分,共20分)

1.程序功能:将n(设n为10)个整数进行降序排序(冒泡法)。

程序清单:

#include<stdio.h>

^defineN10

mainO

(

inta[N],i,*p;

for(p=a;(1);p++)

scanf("%d",p);

(2);

sort(p»10);

for(i=0;i<N:i++)

printf("%d”,a[ij);

printf(w\n");

)

sort(int*q,intn)

{int*j,i,t;

(3);

for(i=0:i<n-l;i++)

for(q=j;q<j+n-i-l;q++)

if((4)___________)

{t=*q;*q=*(q+l);(5);)

答案:〃答案:(l)p〈a+10(2)p=a(3)j=q(4)*q<*(q+l)(5)*(q+l)=t

2.程序功能:建立一个锥表

程序清单:

#include<stdio.h>

#include<malloc.h>

#defineNULL0

itdefineLENsizeof(structstudent)

structstudent

{longnum;

floatscore;

structstudent*next:

};

intn:

main()

(

structstudent*hcac,*pl,*p2;

n=(l);

pl=p2=(structstudent*)malloc(LEN);/*开辟一个新单元*/

scanf%f”,&pl->num,&pl->score);

head=(2);

while(pl—>num!=0)

{

n+=l;

if(n==l)(3);

elsep2->next=pl;

p2=pl;

pl=(structstudent*)malloc(LEN);

(4);

)

(5);

}

答案:2、(1)0(2)NULL(3)hcad=pl(4)scanf("%d%f”,&P1—>num,&pl—>score)

(5)p2—>next=NULL

3、下面的程序是对数组元素中的偶数进行从大到小的顺序输出。请在指定位置填上合适的内容。

#include*stdio.h"

voidmain()

{staticinta[10]={l,3,2,4,8,6,5,12,18,3);

inti,(1),tmp;

for(i=l;i<(2);i++)

for(j=0;j<(3)一;j++)

if(a[j]<a[j+l])

tmp=a[j];

_(4)_=a[j+l];

a[j+l]=tmp;

)

for(i=0;i<10;i++)

if(a[i]%(5)"=0)

printf('%d",a[i]);

)

答案:3(1)j(2)10(3)10-i(4)alj](5)2

〃3、下面的程序是对数组元素中的偶数进行从大到小的顺序输出。请在指定位置填上合适的内容。

ttinclude'*stdio.h',

voidmain()

<staticinta[10]-<1,3,2,4,8,6,5,12,18,3>;

inti,j,tmp;

For(i-1;i<1

For(j=0;j<d0-i;j*+)

iF(a[j]<a[j*1])

六、编程题:(20分)

1.编写程序,3*3矩阵对角线之和。

〃编写程序,3*3矩阵对角线之和。

ttinclude"stdio.h"

moin()

{inta[3][3]=<1,3,6,7,9,11,14,15,17},sun1=0,sun2=0,i,j;

For(i=0;i<3;i++)

For(j=0;j<3;j++)

if(i==j)sum1=sun1+a[i][j];

For(i=0;i<3;i++)

for(j=2;j>=0;j"

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论