当前位置:主页 > 大学试题及答案 >

澳门银河赌城官网

发布时间:2017-11-23 编辑:一米澳门银河赌城官网

C语言程序设计试题及答案

C语言程序设计试题及答案

一、选择题

1、以下不是C语言的特点的是(B)

A.C语言简洁、紧凑 B、能够编制出功能复杂的程序

C. C语言可以直接对硬件进行操作 D、C语言移植性好

2、以下不正确的C语言标识符是( )。

A、ABC B、abc C、a_bc D、ab.c

3、一个c程序的执行是从( ).

A、main( )函数开始,直到main( )函数结束

B、第一个函数开始,直到最后一个函数结束

C.第一个语句开始,直到最后一个语句结束

D、main( )函数开始,直到最后一个函数结束

4、以下不正确的语句(设有int p,q)是( )。

A、P*=3; B.p/=q; C.p十=3; D、p&&=q

5、下列四组选项中,均不是C语言关键字的选项是( ).

A、define B.getc C.include D.while

if char sanf go

type printf case pow

参考答案:1. B 2.D 3.A 4.D 5.A

6、下面四个选项中,均是合法整形常量的选项是( ).

A.160 B.-0xcdf C.-01 D.-0x48a

-0xffff 01a 986,012 2e5

011 0xe 0668 0x

7. 下面四个选项中,均是不合法浮点数的选项是( ).

A.160. B.123 C.-.18 D.-e3

0.12 2e4.2 123e4 0.234

e3 .e5 0.0 1e3

8. 若有代数式3ae/bc,则不正确的C语言表达式是( )

A.a/b/c*e*3 B.3*a*e/b/c

C.3*a*e/b*c D.a*e/c/b*3

9. 若以下变量均是整形,且num=sum=7;则计算表达式sUM=num++,sUM++,++num后sum的值为( ).

A.7 B.8 C.9 D.10

10.若有定义:int a=7; float x=205 ,y=4.7; 则表达式x+a%3*(int)(x+y)%2/4的值是( )。

A.2.500000 B.2.750000 C.3.500000 D.0.000000

参考答案:6.A 7.B 8.C 9.A 10.A

11. sizeof(float)是( )。

A.一个双精度型表达式 B. 一个整型表达式

C.一种函数调用 D. 一个不合法的表达式

12. 设int n=3;则n十十的结果是( )。

A.2 B.3 C.4 D.5

13. 设有说明: char w; int x; float y; double z; 则表达式w*x+z-y值的数据类型为( )。

A.float B.char C.int D.double.

14. 若x,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是( ).

A. scanf(“%d%d1x,%1e”,&x,&y,&z);

B. scanf(“%2d*%d%1f”,&x,&y,&z);

C. scanf(“%x%*d%o”,&x,&Y);

D. scanf(“%x%o%6.2f”, &x,&y,&z);

15. 以下说法正确的是( ).

A. 输入项可以为一个实型常量,如scanf(“%f”,3.5);

B. 只有格式控制,没有输入项,也能进行正确输入,如scanf(“a=%d,b=%d”);

C. 当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(“%4.2f”,&f);

D. 当输入数据时,必须指明变量的地址,如scanf(“%f”,&f);

参考答案:11.B 12.B 13.D 14.D 15.D

16. 以下程序的执行结果是( )。

#include<stdio.h>

main()

{

int sum,pad;

sum=pad=5;

pad=sum++;

pad++;

++pad;

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

}

A.7 B.6 C.5 D.4

17. 巳知字母A的ASCII码是65,以下程序的执行结果是( )。

#include<stdio.h>

main()

{

char c1='A',C2='Y';

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

A.A,Y B.65,65 C.65,90 D.65,89

18. 为了避免嵌套的if-else语句的二义性,c语言规定else总是与( )组成配对关系。

A.缩排位置相同的if

B.在其之前末配对的if

C.在其之前未配对的最近的if

D.同一行上的if

19. 逻辑运算符两侧运算对象的数据类型( ).

A.能是0或1

B.只能是0或非0正数

C.只能是整型或字符型数据

D.可以是任何类型的数据

20. 设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是( ).

A.’x’&&’y’

B.x<=y

C. x||y+z&&y-z

D.!((x<y)&&!z ||1)

参考答案:16.A 17.D 18.C 19.D 20.D

21. 若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”。则以下不能满足要求的表达式是( ).

A.A%2==1 B.!(A%2==0) C.!(A%2) D.A%2

22. 以下不正确的if语句形式是( ).

A.if(x>y&&x!=y);

B.if(x==y)x十=y;

C.if(x ! =y)scanf(“%d”,&x) e1se scanf(”%d,&y);

D.if(x<y){x十十;y十十;}

23. 以下if语句语法正确的是( ).

A.if(x>0)

printf(“%f“,x)

else printf(“%f”,-x);

B.if(x>0)

{x=x+y;printf(“%f“,x);}

else printf(“%f”,-x)

C.if(x>0)

{x=x+y;printf(“%f“,x);}

else printf(“%f”,-x)

D.if(x>0)

{x=x+y;printf(“%f“,x);}

else printf(“%f”,-x)

else printf(“%f”,-x);

24. 阅读以下程序

main()

{int a=5,b=0,c=0;

if(a=b+c) printf(“***\n”);

else printf(“$$$\n”);

}

以上程序 ( ).

A.语法有错不能通过编译 B.可以通过编译但不能通过连接

C.输出*** D.输出$$$

25. 以下程序运行结果是( ).

main()

{int a=100,x=10,y=20,ok1=5,ok2=0;

if (x<y)

if (y!=10)

If(!ok1)

a=1;

else

if(ok2) a=10;

a=-1;

printf(“%d\n”,a);

}

A.1 B.0 c.-1 D.不确定

参考答案:21.C 22.C 23.B 24.D 25.C

26. 执行以下程序段后,变量a,b,c得值分别是( ).

int x=10,y=9;

int a,b,c;

a=(--x==y++)? –x: ++y;

b=x++;

c=y;

A.a=9,b=9,c=9 B.a=8,b=8,c=10

C.a=9,b=10,c=9 D.a=1,b=11,c=10

27. 若w,x,y,z,m均为int型变量,则执行下面语句后的m值是( ).

w=1; x=2; y=3; z=4;

m=(w<x)? w:x;

m=(m<y)? m:y;

m=(m<z)? m:z;

A.1 B.2 C.3 D.4

28. 语句while(!e);中的条件!e等价于( )。

A.e==0 B.e!=1 C.e!=0 D.~e

29. 下面有关for循环的正确描述是( )

A.for循环只能用于循环次数已经确定的情况

B.for循环是先执行循环体语句,后判定表达式

C.在for循环中,不能用break语句跳出循环体

D.for循环体语句中,可以包含多条语句,但要用花括号括起来

30. C语言中while和do-while循环的主要区别是( ).

A.do-while的循环体至少无条件执行一次

B.while的循环控制条件比的循环控制条件严格

C.do-while允许从外部转到循环体内

D.do-while的循环体不能是复合语句

参考答案:26.B 27.A 28.A 29.D 30.A

31.以下程序段( ).

x=-­­1; do{x=x*x;} while(! x);

A.是死循环 B.循环执行二次

C. 循环执行二次 D.有语法错误

32. 下面程序的运行结果是( ).

#include <stdio.h>

main()

{int y=10;

do{y--;}while(--y);

printf(“%d\n”,y--);}

A.-1 B.1 C.8 D.0

33. 以下正确的描述是( ).

A.continue语句的作用是结束整个循环的执行

B.只能在循环体内和switch语句体内使用break语句

C.在循环体内使用break语句或continue语句的作用相同

D.从多层循环嵌套中退出时,只能使用goto语句

34. c语言中( )。

A.不能使用do-while语句构成的循环

B.do-while语句构成的循环必须用break语句才能退出

C.do—whiLe语句构成的循环,当while语句中的表达式值为非零时结束循环

D.do—while语句构成的循环,当while语句中的表达式值为零时结束循环

35. 在C语言中,引用数组元素时,其数组下标的数据类型允许是( )

A. 整型常量 B.整型表达式C.整型常量或整型表达式D.任何类型的表达式

参考答案:31.C 32.B 33.B 34.D 35.C

36. 在C语言中,一位数组的定义方式为:类型说明符 数组名( )。

A. [常量表达] B. 整型表达式C. [整型常量]或[整型表达式] D. [整型常量]

37. 以下不能对二维整形数组a进行正确初始化的语句是( )。

A.int a[2][3]={0};

B. int a[][3]={{1,2},{0}};

C. int a[2][3]={{1,2},{3,4},{5,6}};

D. int a[][3]={1,2,3,4,5,6};

38. 若有说明:int a[][4]={0,0};则下面正确的叙述是()。

A. 数组a中每个元素均可得到初值0

B. 二维数组a的第一维大小为1

C. 因为二维数组a中第二维大小的值除以初值个数的商为1,故数组a的行数为1

D.只有元素a0][0]和a[0][1]可得到初值0,其余元素均得不到初值0

39. 若有说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是( )。

A.2 B.3 C.4 D.无确定值

40. 下面程序的运行结果是( )。

char c[5]={‘a’,’b’,’\0’,’c’c,’\0’};

printf(“%s”,c);}

A.‘a’’b’

B.ab

C.ab c

D.ab

参考答案:36.D 37.C 38.D 39.B 40.B

41. 有两个字符数组a、b,则以下正确的输入语句是( )。

gets(a,b);

scanf(“%s%s”,a,b);

scanf(“%s%s”,&a,&b);

gets(“a”),gets(“b”);

A. s[j+=]=s[i] B. s[++j]=s[i]

C. s[j]=s[i]; j++ D.s[j]=s[i]

42. 若使用一维数组名作函数实参,则以下正确的说法是( ).

A.必须在主调函数中说明此数组的大小

B.实参数组类型与形参数组类型可以不匹配

C.在被调函数中,不需要考虑形参数组的大小

D.实参数组名与形参数组名必须一致

43. 以下正确的说法是( ).

A.如果在一个函数中的复合语句中定义了一个变量,则该变量只在该复合语句中有效

B.在该函数中有效

C.在本程序范围内均有效

D.非法变量

44. 凡是函数中未指定存储类别的局部变量,其隐含的存储类别为( ).

A.自动(auto) B.静态(static)C.外部(extern) D. 寄存器(register)

45. 以下程序的运行结果是( )。

#define MIN(x,y) (x)<(y)?(x):(y)

main()

{int i=10,j+15,k;

k+10*MIN(i,j);

printf(“%d\n”,k);

}

A.10 B.15 C.100 D.150

参考答案:41.B 42.A 43.A 44.A 45.B

46. C语言的编译系统对宏命令的处理是( )。

A.在程序运行时进行的

B.在程序连接时进行的

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

D.在对源程序中的其它语句同时进行编译的

47. 请读程序

#include<stdio.h>

#defineMUL(x,y)(x)*y

main()

{int a=3,b=4,c;

c=MUL(a++,b++);

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

}

上面程序的输出结果是( )。

A.12 B.15 C.20 D.16

48. 以下程序的输出结果为( )。

#definePT 5.5

#defineS(x) PT*x*x

main()

{inta=1,b=2;

printf("%4.1\n",S(a+b));

}

A.12.0 B.9.5 C.12.5 D.33.5

49. 在“文件包含”预处理语句的使用形式中,当#include后面的文件名用<>括起时,寻找被包含文件的方式是( )。

A.仅仅搜索当前目录

B.仅仅搜索源程序所在目录

C.直接按系统设定的标准方式搜索目录

D.先在源程序所在目录搜索,再按系统设定的标准方式搜索

50. 以下正确的描述是( )。

A.C语言的预处理功能是指定完成宏替换和包含文件的调用

B.预处理指令只能位于C源程序文件的首部

C.凡是C源程序中行首以“#”标识的控制行都是预处理指令

D.C语言的编译预处理就是对源程序进行初步的语法检查

参考答案:46.D 47.A 48.B 49.C 50.C

51. 设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值语句是( )。

A.c=*p1+p2; B.p2=c C.p1=p2 D.c=*p1*(*p2);

52. 设有下面的程序段:

chat s[]=”china”; char *p; p=s;

则下列叙述正确的是( )。

A.s和p完全相同

B.数组s中的内容和指针变量p中的内容相等
C.s数组长度和p所指向的字符串长度相等
D.*p与s[0]相等

53. 下面程序的运行结果是( )。

#include<stdio.h>

#include<string.h>

main()

{

char *p1,*p2,str[50]=”abc”;

p1=”abc”; p2=”abc”;

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

printf(“%s\n”,str);

}

A. abcabcabc B.bcabcabc C. aabcabc D.cabcabc

54. 若有定义:int a[2][3];则对数组a的第i行第j列(假设i,j已正确说明并赋值)元数值的正确引用为( )。

A.*(*(i+j)+j) B.(a+i)[j] C.*(a+i+j) D.*(a+i)+j

55. 若有定义:int (*p)[4];则标识符p( )。

A.是一个指向整型变量的指针

B.是 一个指针数组名

C.是一个指针,它指向一个含有四个整型元素的一维数组

D.定义不合法

参考答案:51.B 52.D 53.C 54.A 55.C

56. 若有以下定义和赋值语句,则对b数组的第i行第j列(假设i,j已正确说明并赋值)元素地址的非法引用为( )。

int b[2][3]={0},(*p)[3];

p=b;

A.*(*(p+i)+j) B.*(p[i]+j)

C.(p+i)+j D.(*(p+i))[j]

57. 当说明一个结构体变量时系统分配给它的内存是( ).

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

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

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

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

58. C语言结构体类型变量在程序执行期间( ).

A.所有成员一直驻留在内存中

B.只有一个成员驻留在内存中

C.部分成员驻留在内存中

D.没有成员驻留在内存中

59. 以下对C语言中共用体类型数据的叙述正确的是( )。

A.可以对共用体变量名直接赋值

B.一个共用体变量中可以同时存放其所有成员

C.一个共用体变量中不可能同时存放其所有成员

D.共用体类型定义中不能出现结构体类型的成员

60. C语言共用体型变量在程序运行期间 ( ) 。

A.所有成员一直驻留在内存中

B.只有一个成员驻留在内存中

C.部分成员驻留在内存中

D.没有成员驻留在内存中

参考答案:56.C 57.A 58.A 59.C 60.B

61. 请读程序片段:

int x=20;

printf(“%d\n”, ~x);

上面程序片段的输出结果是( ).

A.02

B.–20

C.-21

D.-11

62. 在位运算中,操作数每左移一位,其结果相当于( ).

A.操作数乘以2

B.操作数除以2

C.操作数除以4

D.操作数乘以4

63. 系统的标准输入文件是指( )。

A. 键盘 B .显示器 C .软盘 D. 硬盘

64. 当顺利执行了文件关闭操作时,fclose函数的返回值是( )。

A .-1 B. TURE C. 0 D.1

65. 已知函数的调用形式:fread(buffer,size,count,fp);其中buffer代表的是 ( )。

A .一个整形变量,代表要读入的数据项总数

B .一个文件指针,指向要读的文件

C .一个指针,指向要读入数据的存放地址

D.一个存储区,存放要读的数据项

参考答案:61.C 62.A 63.A 64.C 65.C

二、填空题:

1. C程序的基本单位是 。

2. 表达式10%3的结果是 。

3. 假设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为 。

4. 在C语言中(以16位PC机为例),一个float型数据在内存中所占用的字节数为 ;

5、C语言所提供的基本数据类型包括: 。

参考答案:1.函数 2. 1 3. 9 4. 4 5.单精度型、双精度型、整型、字符型和枚举型

6、表达式pow(2.8,sqrt(double(x))) 值的数据类型为 。

7、以下程序的执行结果是 。

#include<stdio.h>

main()

{

float f=3.5;

printf("%f,%g",f,f)

}

8. 以下程序的执行结果是 。

#include<stdio.h>

main()

{

float f=31.41592;

printf("%f,%e",f,f)

}

9. 以下程序的执行结果是 。

#include<stdio.h>

main()

{

int a,b,c;

a=2;b=3;c=1;

if(a>c)

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

else

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

printf("end\n");

}

10. 在C语言中,表示逻辑“真”值用 .

参考答案:6.双精度型(或:doubLe型) 7.3.500000,3.5 8. 31.415920,3.14159e+01 9.end 10.非0的数字

11. 有int x,y,z; 且x=3,y=-4,z=5,则表达式(x&&y)= =(x︱︱z)的值为 。

12. 下面程序从键盘输入的字符中数字字符的个数,用换行符结束循环。请填空。

int n=0,c;

c=getchar();

while( )

{if(c>=‘0’&&c<=‘9’) n++;

c=getchar();

}

13. 执行下面程序段后,k值是 .

k=1;n=263;

do{k*=n%10; n/=10 } while(n);

14. 下面程序段中循环体的执行次数是 .

a=10;

b=0;

do{b+=2;a-+2+b; }while (a>=0);

15. 若for循环用以下形式表示:

for(表达式1;表达式2;表达式3) 循环体语句

则执行语句for(i=0;i<3;i++) printf(“*”);时,表达式3执行 次。

参考答案:11.1 12.c!='\n' 13.36 14.3 15.3

16. 以下程序的输出结果是__________。

main( )

{int s[10]={1,2,3,4,5,6,7,8,9,10},*p=s;

printf("%d\n",*(p+4));

}

17. 若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为: 。(假设a[0][0]位于数组的第一个位置上。)

18. 在C语言中,二维数组元素的内存中的存放顺序是 。

19. 在C 语言中,一个函数一般由两个部分组成,它们是 。

20. 以下程序的运行结果是 。

#include<stdio.h>

f(int a[])

{int i=0;

while (a[i]<=10)

{printf(“%d”,a[i]);

i++;}

}

main()

{int a[]={1,5,10,9,11,7};

f(a+1);

}

参考答案:16.5 17.i*m+j+i 18.按行主顺序存放 19.函数说明部分和函数体 20.5 10 9

21. 设有以下宏定义:#define WIDTH 80

#define LENGTH (WIDTH+40)

则执行赋值语句:k=LENGTH*20;(k为int 型变量)后,k的值是 。

22. 下面的运行结果是 。

#define MUL(z) (z)*(z)

main()

{

printf(“%d\n”,MUL(1+2)+3);

}

23. 下面程序的运行结果是 。

#define EXCH(a,b) {int t;t=a;a=b; b=t;}

main()

{int x=5,Y=9;

EXCH(x,y);

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

}

24. 下面程序段的运行结果是 。

char s[80], *sp=”HELLO!”;

sp=strcpy(s,sp);

s[0]=’h’;

puts(sp);

25. 下面程序段的运行结果是 。

char s1=”AbcdEf”,s2=”aB”;

s1++;

t=(strcmp(s1,s2)>0);

print(“%d\n”,t)

参考答案:21.2400 22.12 23.x=8,y=5 24.hELLO! 25.1

26. 下面程序段的运行结果是 。

char *p=”PDP1-0”;

int I,d;

for(I=0;I<7;I++)

{d=isdigit(*(p+ii));

if(d!=0) printf(“%c *(p+I));

}

27. 当运行以下程序时,从键盘输入 book<CR>

book <CR>

(<CR>表示回车, 表示空格),则下面程序段运行的结果是 。

char a1[80],a2[80],*s1=a1,*s2=a2;

gets(s1);gets(s2);

if(!strcmp(s1,s2)) printf(“*”):

else printf(“#”);

printf(“%d”,strlen(strcat(s1,s2)));

28. 若已定义:

struct num

{int a;

int b;

float f;

} n={1,3,5.0};

struct num * pn = &n;

则表达式 (*pn).a+pn->f的值是 。

29. 在C语言中,&运算符作为双目运算符时表示的是 运算.

30. 在C语言中,文件的存取是以字符为单位的,这种文件被称作 文件。

参考答案:26.1*0* 27.#9 28.6.0 29.按位与 30.流式

三、编程题:

1、将一个字符串的内容颠倒过来。

2. 求整形数组的最大值。

3. 求字符串的长度(不用strlen)。

4. 编写程序,将字符串str中的所有字符’k’删除。

5、找出二维数组的鞍点,即该位置上的元素是该行上的最大值,是该列上的最小值。二维数组也可能没有鞍点。

6、a是一个2*4的整型数组,且各元素均已赋值.函数max_value可求出其中的最大元素值max,并将此值返回主调函数.今有函数调用语句max=max_value(a);请编写max_value函数.

7. 设计函数,实现字符串连接操作(不使用strcat)。

8. 以下程序的功能是应用下面的近似公式计算e的n次方.函数f1用来计算每项分子的值,函数f2用来计算每项分母的值.请编写f1和f2函数.

ex=1=x=x2\2!+x3\3!…(前20项的和)

9. 从键盘上输入若干个学生的成绩,计算出平均成绩,并输出不及格的成绩和人数。

10、设计函数,在二维数组中产生如下形式的扬辉三角形。

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

······

11. 回文是从前向后和从后向前读起来都一样的句子。写一个函数,判断一个字符串是否为回文,注意处理字符串中有中文也有西文的情况。

12、约瑟夫环问题:编号为1,2,3,···,n的n个人按顺时针方向围坐一圈,每人持有一个正整数密码。一开始任选一个正整数m作为报数上限值,从第一个人开始按顺时针报数,报到m时停止,报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止。设计程序求出出列顺序。

三、编程题参考答案

1. 解:注意交换位置的控制方法,参考程序如下:

#include <stdio.h>

#include <string.h>

void change(char str[])

{ int len,i,j;

char c;

len=strlen(str);

for (i=0,j=len-1;i<len/2;i++,j--)

{ c=str[i];

str[i]=str[j];

str[j]=c;

}

}

main()

{ char str[80];

printf("Enter string:");

gets(str);

change(str);

printf("\n result is: %s\n",str);

}

2、解:参考程序如下:

#include <stdio.h>

int max(int a[],int n)

{ int i,mx;

mx=a[0];

for (i=1;i<n;i++)

if (a[i]>mx) mx=a[i];

return mx;

}

main()

{ int a[8]={23,4,6,12,33,55,2,45};

printf("max is %d\n",max(a,8));

}

3、解:参考程序如下:

#include <stdio.h>

int strlen(char str[])

{ int i;

for (i=0;str[i]!='\0';i++);

return i;

}

main()

{ char str[80];

printf("Enter string:");

gets(str);

printf("\n string length is: %d \n",strlen(str));

}

4. 解:将从字符串中删除所有字符’k’ 的功能定义为函数。参考程序如下:

#include <stdio.h>

void delchar(char str[],char c)

{ int i,j;

for (i=0,j=0;str[i]!='\0';i++)

if (str[i]!=c)

str[j++]=str[i];

str[j]='\0';

}

main()

{ char str[80];

int i,j;

gets(str);

delchar(str,'k');

puts(str);

}

5、解:依鞍点定义,对数组每行元素循环,找到当前行上最大元素,记下所在的列号,再判断此元素是否为对应列的最小元素。将寻找打印数组鞍点的操作定义为函数,如果没有鞍点,函数返回-1。参考程序如下:

#include <stdio.h>

#define N 10

#define M 10

int andian(int a[][M],int n,int m)

{ int i,j,k,max,maxcol;

int flag1,flag2=0; /*flag1标记每一行的最大值是否鞍点,flag2标记矩阵是否有鞍点*/

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

{ max=a[i][0];

for (j=1;j<m;j++)

if (a[i][j]>max)

{ max=a[i][j];maxcol=j;}

for (k=0,flag1=1;k<n&&flag1;k++)

if (a[k][maxcol]<max)

flag1=0;

if (flag1==1)

{ printf("\n%3d %3d %5d\n",i,maxcol,max);

flag2=1;

}

}

if (flag2==0)

return -1;

}

main()

{ int i,j,n,m,a[N][M];

printf("Enter row && col:");

scanf("%d%d",&n,&m);

printf("Enter array element:");

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

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

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

printf("\n");

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

{ for (j=0;j<m;j++)

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

printf("\n");

}

if (andian(a,n,m)==-1)

printf("\n no andian \n");

}

6、 max_value(int arr[][4])

{ }

max(int arr[ ][4])

{int I,j, max;

max=arr[0][0];

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

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

if(arr[i][j]>max)max=arr[i][j];

return(max);

}

7. 解:注意结束字符的判断和处理,目标字符串的长度应足够长。参考程序如下:

#include <stdio.h>

void scat(char s1[],char s2[])

{ int i,j;

for (i=0;s1[i]!='\0';i++);

for (j=0;s2[j]!='\0';j++)

s1[i++]=s2[j];

s1[i]='\0';

}

main()

{ char s1[80]="Good ";

char s2[10]="morning";

scat(s1,s2);

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

}

8. ex=1=x=x2\2!+x3\3!…(前20项的和)

float f2(int n)

{ }

float f1(int x,int n)

{ }

main()

{ float exp=1.0;int n,x;

printf(“Input a number:”)’

scanf(“%d”,&x); printf(“%d\n”,x);

exp=exp+x;

for(n=2;n<=19;n++) exp=exp+f1(x,n)/f2(n);

printf(“\nThe is exp(%d)=%8.4f\n”,x,exp)’

}

运行结果:Input a number:3

The is exp(3)=20.0855

float f2 (int n)

{if(n==1)return1;

else return(f2(n-1)*n);

}

float f1(intx,intn)

{int I; float j=1;

for(I=1;I<=n;I++)j=j*x;

return j;

}

9.解:用输入负数表示输入结束。参考程序如下:

#include <stdio.h>

main()

{ float score[200],ave,sum,x;

int i,n,count;

printf("Enter score:");

scanf("%f",&x);

n=0;

sum=0.0;

while (x>0&&n<200)

{ sum+=x;

score[n++]=x;

scanf("%f",&x);

}

ave=sum/n;

printf("average= %f\n",ave);

for (count=0,i=0;i<n;i++)

if (score[i]<60)

{ printf("%f\n",score[i]);

count++;

}

printf("%d not pass\n",count);

}

10、解:扬辉三角形各行数据规律:

(1) 每行第一个和最后一个数都是1

(2) 从第3行起,(3) 除第一和最后一个数外,(4) 其余的数都是上一行同(5) 列和前一列两个数的和。

定义函数,将扬辉三角形的数据保存在二维数组中。参考程序如下:

#include <stdio.h>

#define N 10

void yanghui(int a[][N],int n)

{ int i,j;

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

{ a[i][0]=1;

a[i][i]=1;

}

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

for (j=1;j<i;j++)

a[i][j]=a[i-1][j-1]+a[i-1][j];

}

main()

{ int i,j,n,a[N][N];

printf("Enter n:");

scanf("%d",&n);

yanghui(a,n);

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

{ for (j=0;j<=i;j++)

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

printf("\n");

}

}

11. 解:依回文定义从字符串的起始字符向后,最后一个字符向前依次判断,遇汉字的第一个字符同时处理两个字符。参考程序如下:

#include <stdio.h>

#include <string.h>

int huiwen(char str[])

{ int i,j,len,flag=1;

len=strlen(str);

for (i=0,j=len-1;i<=j;i++,j--);

if (str[i]!=str[j])

{ if (str[i]>128&&str[j]>128) /*两侧都是汉字字符*/

{ if (str[i]==str[j-1]&&str[i+1]==str[j])

{ i++; j--; }

else flag=0;

}

else flag=0;

}

return flag;

}

main()

{ char str[50];

printf("Enter string:");

gets(str);

if (huiwen(str))

printf("%s is a palindroma\n");

else

printf("%s is not palindroma\n");

}

12、解:设整型数组a中保存n个人的密码,对应的人出列后,数组元素置0作为标志。顺时针确定下一个人的方法,可将下标加1,再对n求余。参考程序如下:

#include <stdio.h>

#define N 100

main()

{ int a[100];

int i,j,m,n,k=0;

printf("Enter n & m:");

scanf("%d%d",&n,&m);

printf("Enter code array :");

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

scanf("%d",&a[i]);

printf("\nOutput:\n");

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

{ j=1;

while (j<m)

{ while (a[k]==0) /*跳过已出列的人*/

k=(k+1)%n;

j++;

k=(k+1)%n;

}

while (a[k]==0) /*跳过已出列的人*/

k=(k+1)%n;

printf("%d ",k);

m=a[k]; a[k]=0;

}

}

看过本文的人还喜欢以下文章

大学军事理论考试试题及答案
大学军事理论考试试题及答案
大学军事理论考试试题及答案 一、填空题 1、现代国防的类型,按照性质可分为 扩张型 和 自卫型 ,按照形式可分为 型 和 中立型 。 2、 学校国防教育 是国民国防教育的基础,是实施素质教育的重要内容。对小学,初中,高中,大学的国防教育提出了不同层次的要求。 3...
2018大学试题及答案汇总【银河国际网址】大学期末考试题及答案
2018大学试题及答案汇总【银河国际网址】大学期末考试题及答案
大学生试题及答案网为您精心整理提供历年期末考试题及参考答案,期末复习试卷及答案,供各位同学参考复习,了解考试题型和参考内容,做到有目的的复习巩固,努力的人成绩不会太差,包括理工科、文科、计算机、材料、土木、文学、经管、外语、医学、数学等专业精选试题,...
大学语文试题及答案
大学语文试题及答案
大学语文试题及答案 一、选择题 1下面哪项不属新月派三美理论(C) A音乐美 B建筑美 C语言美 D绘画美 2《乡愁》的作者是(D) A徐志摩 B郁达夫 C郭沫若 D余光中 3下面哪项不属知性散文的特点:(A) A语言辛辣,文笔犀利。 B文章旁征博引 C描摹人生活灵活现,讽刺世态...
2018《市场》试题及答案
2018《市场》试题及答案
《市场》试题及答案 一、选择题 1、企业活动中体现的社会价值观、伦理道德观,充分考虑社会效益,既自觉维护自然生态平衡,更自觉抵制各种有害,被称为(A)。 A、广义绿色 B、狭义绿色 C、整合 D、关系 2、企业在活动中,谋求消费者...
2017大学思修试题及答案银河国际网址-思想道德修养与法律基础期末考试题及答案
2017大学思修试题及答案银河国际网址-思想道德修养与法律基础期末考试题及答案
2017思修试题及答案 思想道德修养与法律基础期末试题及答案 一、填空题(每小题2分,共20分) 1、当代社会公共生活的特征主要表现在:(活动范围的广泛性、交往对象的复杂性、活动方式的多样性)。 2、在发展社会主义市场经济的条件下,在全面建设小康社会的进程中,依据我国...
《宪法学》试题及答案
《宪法学》试题及答案
《宪法学》试题及答案 一、选择题 1、我国有权对宪法进行解释的机关是( B)。 A、全国人大 B、全国人大常委会 C、最高法院 D、国务院 2、资产阶级学者以宪法是否具有统一的法典形式将宪法分为( A)。 A. 成文与不成文宪法 B、规范与不规范宪法 C、刚性与柔性宪法 D、钦定...

 

以上就是澳门银河赌城官网美文网为您精心整理提供的关于《C语言程序设计试题及答案》全文,希望对您有所帮助。