计算机二级试题2013 - 12

更新时间:2024-02-03 02:39:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

2013-12

一. 选择题 (一) 概述

1. 要使C源程序装换成以二进制形式表示的目标程序,应使用( ) A、解释程序 B、编译程序 C、编码程序 D、编辑程序

2. 常用的描述算法有( )。 A.高级语言、流程图和伪代码 B.自然语言、流程图和伪代码 C.自然语言、高级语言和低级语言 D.机器语言、流程图和高级语言

3. 下列关于C源程序中main()函数位置的叙述,正确的是( )。 A.必须是最后一个函数

B.必须在系统调用的库函数后面 C.可以写在第一个函数,也可以写在最后一个函数

D.必须是第一个函数

4. 下列叙述错误的是( )。

A)注释部分既可以出现在语句的后面,也可以单独写成一行

B)一条语句可以分多行写

C)C源程序只能包含一个main( )函数 D)C源程序的基本单位是语句

5.C源程序的3种基本结构是分支结构,循环结构和( )结构。

A.递归 B.转移 C.顺序 D.嵌套

(二)基本计算

6. 关于C语言数据类型, 叙述正确的是( )。

A.定义变量必须指定变量的数据类型 B.常量没有数据类型 C. 数组是基本类型

D.指针类型属于构造类型

7.若已定义,long i=1;float f=2.5;则表达式i+3.0+(int)f值的类型是()

1

A float B double C long D int

8. 若已定义, int a=7,b;能使变量b的值为2的赋值表达式() A b=(a++)/3 B b=a-(4++) C b=(a+7.8)/8 D b=(a++)-6

9. 若以定义,int a=5; float b=1.5; 表达式a+b*5/3的值为()、

A 7 B 6 C6.5 D 7.500000

10. 下列合法的数据类型关键字是() A、switch B、Double C、float D、INT

11.若已定义:int a,b;语句a=(b=2,a=3,a*b);执行后变量a的值为()

A、4 B、2 C、3 D、6

12.若已定义:int a=2,b=1;则表达式a||!b的值为()

A、2 B、0 C、1 D、3

13.下列关于运算符优先级叙述中错误的是( )

A、括号运算符“()”优先级最高

B、取模运算符优先级高于赋值运算符 C、逻辑运算符优先级都低于关系运算符 D、算术运算符优先级都高于关系运算符

14.下列()为合法的字符常量 A、?\\n? B、“\\n” C、“n” D、n

15.下列( )为合法的数值常量 A)”abc” B).686 C)E7 D)6,860

16.下列表达式值类型与其余三个不同的是()

2013-12

A、6.0/5 B、(int)6.0/5.0 C、6/5.0 D、int(6.0/5.0)

17.若已定义 int a=2,b=3;表达式(a--)*(++b)的值为()

A、6 B、8 C、4 D、3

18.若已定义:int a=4, b=3, c=1; 语句(c++>b)&&(++c==a); 执行后变量c的值是( )。

A)0 B) 3 C)1 D)2

19. 若已定义:char chr; double a;拟从键盘将?A?和6分别赋予变量chr和a,正确的输入语句是()

A、scanf(“%d%f”,&chr,&a); B、 scanf(“%d%lf”,&chr,&a); C、scanf(“%c%lf”,&chr,&a); D、scanf(“%c%f”,&chr,&a);

20.若已定义:float a; 拟从键盘输入数据65给变量a, 应选用( )语句。 A)scanf(“%d”, &a); B)scanf(“%f”, &a); C)scanf(“%2.0f”, &a); D)scanf(“-”, &a);

21. 若已定义:int x=7;float y=1534.678;以下语句中能输出7 1534.678的是( ) A、printf(“%d %d”,x,y); B、printf(“%.3f %.3f”,x,y); C、printf(“%d %f”,x,y); D、printf(“%d %.3f”,x,y);

22.以下程序段的运行结果是( ) int a=48; char c=?9?;

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

(注:字母?0?的ASCII的值为48) A)?9?-?0?=0 B) 9+48=9

C) 9-0=9 D) 9-48=-39

23.若已定义: int x=10; 语句printf(“%o,%0x, %d\\n”, x,x,x,); 执行后输出

2

( )。

A)10,10,10 B)12,a,10 C)a,12, 10 D)8,16,10

24.若已定义:char a=?A?;int b=5;下列表达式错误的是() A、a==b B、a==A C、a=a-b D、a++

25.Turbo C中,基本数据类型存储空间长度的排列顺序是( )。

A.sizeof(int)=sizeof(float)

26.若已定义:int a=3;语句a+=++a; 执行后变量a的值是( )。 A. 7 B. 4 C. 6 D. 8

27.若已定义:int a=3,b=4,c;语句c=a>b;执行后变量c的值为( )。 A.4 B.0 C.1 D.3

28.下列( )为合法的用户标识符。 A._int B.xy.6 C.do D.5x

29. 下列表达式值相等的是( )。 A.a+1与a++ B.a++与++a C.4/3与4%3 D.3/2与1.5

30. 若已定义: int a;能够判断变量a值是否为偶数的是( )。

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

31. 若已定义:int a=0,b=2,c=3;表达式!a+b

32.若已定义:int a=3; float x=1.5; 表达式值不等于2的是( )。

2013-12

A) a=a/x B)a/(int)x C)a=(float)a/x D) (int)(a/x)

33.若已定义: int a, b=140; 语句a=b/100%7; 执行后a 的值为( )。 A)70 B)2 C)0 D)1

34.若已定义:int a; 语句a=13%6-(3/5)执行后变量a 的值为( )。

A)1.4 B)0.4 C)1 D)2.4

(三)控制结构

35.以下程序段的运行结果是() int a=6; switch(a++) {

case 7:printf(“%d “,a++);

case 6:printf(“%d “,a++); break; defult: printf(“%d “,a++); }

A 7 8 B 8 9 C 7 D 8

36.若已定义:int a,b,c,k=0;下列程序段与语句a>b?(b>c?k++:k):k++;功能等价的是() A、if((a>b)||(b>c)) k=1; else k=0;

B、if(a<=b) k=1; else if(b>c) k=0; else k=0;

C、if((a>b)&&(b<=c)) k=0; else k=1;

D、if(a<=b) k=1; else if(b>c) k=1; else k=0;

37.以下程序段的运行结果是() int i,n=1;

for(i=1;i<=10;i++) {n++; i++; }

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

A、6 B、11 C、5 D、10

3

38.下列程序的运行结果是() int x=5;

if(x=0) printf (“=”,x++); else if(x>0) printf(“=”,x+2); else printf(“=”,x+3):

A、6 B、7 C、3 D、1

39.以下程序段的运行结果是( ) int a=4,b=5; if(a

printf(“True: %d\\n”, ++a); else

printf(“False: %d\\n”, b++); A)False :5 B)False :4 C)True:4 D)True:5

40.若已定义: int a; 语句 if(!(a%3)) a--; else a++;

与下列( )语句等价 A)a%3?a--:a++;

B)a=(!(a%3)?a++:a--); C)a=(a%3?a--:a++); D)a%3?a++:a--;

41.以下程序段的运行结果是() int a=0,i=0; while(i<=5) { ++i;

if(i%3==1) continue; a+=i; }

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

A、5 B、21 C、0 D、16

42. 以下程序段中循环体的执行次数是()。 int i=1,a=0;

for (i++;i<5;i++) a++;

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

43. 若已定义: int a; 下列语句不会产生死

2013-12

循环的是( )。

A) for(a=10; a>1; a--) ; B) for(a=1; a=10; a++) ;

C) for( a=1; a!=0; ); D) for(a=10; a=1; a--) ;

44.以下程序段的运行结果是( ) int i, a=0;

for(i=5; i>=1; i--) { if(i/2==1) { a+=i; break;

} a++; }

printf(“%d”, a);

A)3 B)8 C)5 D)10

(四)数组

45.以下程序段执行后,a[5]元素的值为( )。

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

A)0 B)5 C)6 D)3

46.若已定义:int a[ ][3]={1,2,3,4,5,6, 7,8};下列叙述正确的是( )。 A) 数组a的行数为8 B)数组a包含8个元素 C)元素a[1][2]的初值为6

D)数组a的第一维大小可以取任意值

47.以下程序段的运行结果是( )。 int

a[ ][3]={11,12,13,14,51,61,17,8,29,10,26}; printf(“%d\\n”, a[2][1]);

A)21 B)8 C)14 D)51

48. 下列叙述正确的是() A) 字符数组可以存放字符串

B) 定义数组时,如果省略类型说明则默认为int 型

C) 定义数组后,可通过赋值运算符”=”对数组名直接赋值

4

D)数组名代表数组所占存储区的首地址,是指针变量

49. 在turbo c 若已定义 int a[3][2];则表达式 sizeof(a)的值()

A 10 B14 C6 D12

50.若已定义int a[10], b=5;无法正确引用a数组元素的是( )。

A)a[2*3] B)a[10] C) a[0] D)a[b]

51.若已定义: int a[4][3]; 则合法引用数组元素的是( )。

A) a[4][1] B) a[ ][3] C)a[3][ ] D)a[0][0]

52. 若已定义:int a[5][3];则表达式&a[3][1]-&a[0][0]的值为( )。

A.11 B.4 C.9 D.10

53. 若已定义:char str[]=”Information”;则函数strlen(str)的值是( )。

A.11 B.12 C.10 D.13

54. 以下程序段的运行结果是( )。 char str[15]=”Information”; str[4]=?\\0?;

printf(“%d”,strlen(str)); A.5 B.15 C.11 D.4

55. 以下程序段的运行结果是()。 int a[]={2,4,6,8,10},i; for (i=0;i<4;i++) a[i]=a[i+1]++; for(i=0;i<5;i++) printf(“%d “,a[i]);

A.4 6 8 10 11 B.4 6 8 10 12 C.5 7 9 11 11 D.6 8 10 12 10

56. 以下程序段的运行结果是( )。 int a[]={6,5,4,3,2,1},i; for(i=1;1<6;i++) if(i%2)

a[i]+=2;

2013-12

for(i=1;i<6;i++) printf(“%d “,a[i]);

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

(五)函数

57.以下程序的运行结果是( ) #include int fun(int n) {if(n==1) return (1); else

return (n*fun(n-1)); }

void main() (int x

x=fun(2);

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

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

58. 以下程序段的运行结果是() char str1[20]=”nice to meet you!” , str2[8]=”Nice”; strcpy(str1,str2); printf(“%s”,str1);

A Nice to meet you B N

C nice D Nice

59.在Turbo C中, 若已定义: char str1[8]=”Notice”, str2[8]=”NOTICE”; 则函数strcmp(str1, str2)的值是( )。 A)0 B)32 C)1 D)-32

60.以下程序段的运行结果是( ) char str1[20]=”passport ”, str2[2]]=”please”; strcat(str1,str2); printf(“%s”,str1); A)please passport B) passport please C) passport D) please

5

61. 以下程序的运行结果是() #include

int fun(int x,int y) {int z; z=x+y; x=x-10; return(z); }

void mian() { int a=2,b=3,c; c=fun(a,b);

printf(“%d %d”,a,c); }

A、-8 2 B、2 5 C、2 2 D、-8 5

62.以下程序的运行结果是( )。 #include int func( )

{ static int m=1; m+=2; return m; }

void main( ) { int i;

for(i=1; i<=3; i++) printf(“%d”, func()); }

A)2 4 6 B)2 2 2 C)3 5 7 D)3 3 3

63. 以下程序的运行结果是() #define K 2 void main() { int x; x=K*6

printf(“%d”,x); }

A、12 B、2 C、8 D、6

64. 以下程序的运行结果是()。 #include”stdio.h”

2013-12

#define M 3 #define N 5 void main() {int a;

a=M+N*6;

printf(“=”,a); }

A.48 B.23 C.33 D.30

65. 以下程序的运行结果是()。 #include”stdio.h” #define N 3 #define M 6 void main( ) {int i,s=0;

for(i=1;i<=N;i++) s+=M; printf(“=”.s); }

A.9 B.15 C.18 D.12

66.下列叙述错误的是( )。 A)编译预处理不占用运行时间

B)编译预处理命令行必须以“#”开头 C)编译预处理命令行必须以分号结束 D)C语言中define 称为宏定义

67.下列正确的#include命令行是( )。 A)#include math.h B)#include C)#include “math” D)#include [math]

68. 以下叙述正确的是()。

A)被调用函数至少含有一个形式参数,且必须有返回值

B)函数可以返回一个值,但不能没有返回值

C)函数的定义和调用都不可以嵌套

D)声明有参函数时必须明确函数类型和参数类型

69. 下列叙述正确的是()。

A. 定义函数时必须给出函数的类型

6

B. 形参是变量名时,实参可以省略 C. 必要时函数可以进行嵌套定义 D.定义函数时都必须指明函数参数

(六)指针

70.在Turbo C中,以下程序段的运行结果是( )。 char *p1; int *p2; float *p3;

printf(“%d %d %d”, sizeof(*p1), sizeof(*p2), sizeof(*p3)); A) 1 4 4 B)1 2 4 C)1 1 1 D)4 4 4

71. 若已定义,int a[ ]={1,2,3,4,5,6},i;

int *p=a;则对下列数组元素a[3]的引用中错误的是( )

A) *(&a[3]) B) *(p+3) C) p[3] D) a[p+3]

72. 以下程序的运行结果是( ) #include

void fun(int *p1,int *p2) { int sum;

sum=*p1+*p2; *p1=sum-*p1; *p2=sum-*p2; }

void main() {int a=2,b=3; fun(&a,&b);

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

A 2,2 B 3,3 C 2,3 D 3,2

73. 若已定义: int a=10,*p;p=&a;下列叙述错误的是( ) A、*(&p)等价于a B、&(*p)等价于p

C、&a等价于&(*p) D、*(&a)等价于a

2013-12

74. 下列叙述正确的是( ) A、char s[10]={“green”};

等价于char s[10];s[10]={“green”}; B、char s[10]=“green”,k[10]=”green”; 等价于char s[10]; s[10]=k[10]=“green”; C、char *s=“green”;

等价于char *s;s=“green”; D、char *s=“green”;

等价于char *s;*s=“green”;

75. 以下程序的运行结果是( )。 {int a[6]={1,2,3,4,5,6}; int *p=a,i; while(p

for (i=0;i<6;i++) {p--;

printf(“=”,*p); }}

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

76. 以下程序的运行结果是()。 #include void main()

{char a[]=”aaabbb”; char *p=a;

for( ;*p!=?\\0?;p++) printf(“%s\\n”,p); }

A. aaabbb B.aaabbb C.bbb D.aaa aabbb aabbb bb aa abbb abb b a

bbb b

77. 若已定义:

int a[10]={2,3,5,6,8,10,1,4,7,9};int *p=a; 则表达式*(p+3)的值为()。 A.8 B.5 C.6 D.3

78.下列错误的语句的是( )。 A) int *p=10;

7

B) char *str=”yellow”;

C)char *str; str=”yellow”; D)int a=10, *p; *p+1=a;

79.以下程序段的运行结果是( )。 char str[3][10]={“China”,“Fujian”, “Fujian”}; char (*p)[10]; p=str;

printf(“%s”, *(p+1));

A)China B)Fujian C)Fuzhou D)c

80. 下列叙述错误的是()

A联合体类型可以出现在结构体类型定义中

B一个联合体变量占用的内存大小是占用内存容量最大的成员所需容量

C一个联合体变量占用的内存大小是各成员所需的内存容量之和

D一个结构体变量占用的内存大小是各成员所需内存容量之和

81. 若有以下定义,能正确引用数值25的方式是() struct stu { int num; char name[20]; }

stua[3]={{23,”ZhangLin”},{24,”WangFan”},{25,”LinPing”}}; struct stu *p=stua; A) *p.num B) stua.num C) (*(p+2)).num D) *p+2.num

82. 若有定义,能输出字母?W?的语句是() struct class { int num; char name[8]; };

struct class a[5]={{3,”Zheng”}, {5,”Lin”},{7, “Wang”},

2013-12

{9,”Ma”},{11,”Zao”}}; A、printf(“%c\\n”,name[0]); B、printf(“%c\\n”,a[2].name[0]); C、printf(“%c\\n”,a[3].name[0]); D、printf(“%c\\n”,name[3][0]);

83. 以下程序的运行结果是() #include void main () { struct data { int x; int y; int sum; }

a[3]={{3,8},{4,5},{2,3}; struct data *p=a; int i;

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

(*(p+i)).sum=(*(p+i)).x+(*(p+i)).y; for( ;p

printf(“=”,p->sum); }

A、5 9 11 B、9 5 11 C、11 9 5 D、9 11 5

84 .以下程序的运行结果是( )。 #include void main() { struct data {int x; float y; }a[5]={

{{1,2.3},{2,5.8},{3,2.7},{4,3.2},{5,3.9}}; struct data *p=a; int i;

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

printf(“%5.1f”,(p+i)->y); }

A.2.7 4.0 3.2 5.0 3.9 B.1.0 2.3 5.8 3.0

C.2.3 5.8 2.7 3.2 3.9 D.1.0 2.0 3.0 4.0 5.0

85.以下程序的运行结果是( )。 #include void main() { struct data { float x; float y;

}a[3]={{1.2,2.3}, {2.1, 3.6},{1.3, 3.0}}; struct data *p=a; for( ; p

printf(“%3.1f”,(p->y)+10); }

A)13.0 13.6 12.3 B)11.2 12.3 12.1 C)12.3 13.6 13.0 D)11.2 12.1 11.3

86. 以下结构类型的嵌套定义后, 该结构类型变量x所占用的内存字节数是()。 struct birthday {int year; int month; };

struct person {int num; char nc;

struct birthday y_m; }x;

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

87.以下程序的运行结果是( ) #include void main( ) { struct color { int num;

char c;

}cx[5]={{1,?R?},{2,?G?},{3,?B?},{4,?Y?},{5,?W?}};

struct color *p=cx; int i;

for(i=4;i>=0;i--)

printf(“%c”, (p+i)->c); }

A) W Y B G R B) G R W Y B

8

2013-12

C) R G B Y W D B Y W R G

88. 以下程序的运行结果是()。 #include void main() { union data {int a;

char b; float c; }x[2];

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

A.14 B.8 C.4 D.7

89.以下程序的运行结果是( )。 #include void main( ) { union { int num;

char c; }a; a.c=?A?;

a.num=a.c+32;

printf(“%c\\n”, a.num); }

A)A B)97 C)32 D)a

90.以下程序段的运行结果是( )。 int a=13,b=2,c; c=a|b;

printf(“%d”,c);

A.7 B.13 C.16 D.15

91. 以下程序段运行后变量y 的值为() int a=5,y; y=a<<1;

A 4 B 1 C 10 D 6

92. 若以定义,typedef int INTEGER; INTEGER x,*p;下列叙述正确的是() A x,p都是int型变量 B x,p都是指针型变量

C 不能用INTEGERL来定义变量

D 程序中可用INTEGERL定义整型变量

9

93. 以下程序的运行结果是()。 #include viod main ()

{enum Weekday{red=5,green=1,blue,white}; printf(“%d\\n”,blue); }

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

94.下列错误的语句是( ) A)enum car(A,B,C); B) enum car{D=2, E, F=6}; C) enum car{1, A,B}; D) enum car{K, M,=3 ,N};

(七)文件

95.C语言将文件分为( )两类 A)ASCII码文件和二进制文件 B)八进制文件和十六进制文件 C)八进制文件和二进制文件 D) ASCII码文件和十六进制文件

96. 若要定义fp为指向一个文件的指针变量,下列语句正确的是() A)*file; B)FILE fp; C) *FILE fp; D)FILE *fp;

97. 若用fgetc()函数从打开的文件中读入一个字符,则该文件的打开方式可以是()。 A.只写方式 B.只读或追加方式 C.只读或读写方式 D.追加方式

98. 文件操作函数fread(buffer,size,count, fp);中buffer代表()。

A. 一个指针变量,它存放数据缓冲区的地址

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

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

D. 一个文件指针变量,指向要读的文件

99.文件操作的一般步骤是( )。

A) 定义文件指针,定位指针,读/写文件 B) 定义文件指针,打开文件,读/写文件,

2013-12

关闭文件

C) 打开文件, 定义文件指针,读/写文件, 关闭文件

D) 打开文件,读/写文件, 关闭文件

10

2013-12

二.改错题

1. 修改程序Cmody541.c中的错误,实现将键盘输入字符串中的?1?~?9?转换成比它小1的数字字符,?0?转换成?9?。如

输入:ab50cd89EF34GH43 输出:ab49cd78EF23GH32 #include #include main() {

char s1[100], s2[100]; int i,s_len;

printf(\ gets(s1);

s_len = strlen(s1);

for(/**/i=1; /**/ i

if( s1[i] >= '1' && s1[i] <= '9') /**/s2[i]--;/**/

else if( /**/ s1[i] =0/**/) s2[i] = s1[i]+9; else

s2[i] = s1[i]; }

s2[i] = '\\0'; puts(s2); getch(); }

2. 修改程序Cmody542.c,其中函数fun( )将0、1字符串表示的二进制数转换成对应的十进制数,并返回转换结果。如: 输入字符串:10100111 输出结果:167 #include int fun( char *p ) {

int y;

/**/ y=1; /**/ while(*p!='\\0') {y=y*2+*p-'0'; /**/ y++ /**/; }

return(/**/ 0 /**/);

11

}

void main() {

char str_b[9];

printf(\ gets(str_b);

printf(\ getch(); }

3. 程序Cmody551.c,计算满足下列条件的所有零件数,保存到数组num[100]中。有一堆零件,总数在100到500之间并且满足:若按5个零件进行分组,则最后多出3个;若按7个零件分组,则多出2个。 #include void main() {

int/**/ i,num[100];/**/ count=0 ;

for( i=100;i<=500;i++ )

if( /**/i%5 =0 && i%7=0 /**/) {

/**/num[i]=i;/**/ count++; }

for(i=0; i

printf(\

getch(); } ??

4. 修改程序Cmody552.c,其中函数Is_Prime(int x)用于判断x::若x?0则返回值为-1;x>0则判断其是否为素数,若是返回值为1,否则返回值为0. #include #include

/**/ integer /**/Is_Prime( int x ) {

int /**/ i/**/; if(x<=0) return(-1);

2013-12

else {

k=(int)sqrt((double)x); for(i=2;i<=k;i++)

if(x%i== /**/ 1 /**/) {return(0); } return (1); } }

void main() {

int a;

printf(\ scanf(\

printf(\ getch(); }

5. 程序Cmody561.c,计算如下数字表达式:

x2?1y?1 x? ?x?1y?1

#include void main() {

float x,y;

/**/ int result; /**/

printf(\ scanf( \

while(/**/ x==1 && y==1 /**/) {

printf(\:Divided by zero!\ printf(\ scanf(\ }

result= (x*x+1)/(x-1)+(y+1)/(y-1); printf(\ getch(); }

12

6. 修改程序Cmody562.c,其中函数fun_time(int x[ ],int n,int y)将数组x中每个元素值依次乘以y。 #include

void fun_time(int x[],int n,/**/ y /**/) {

int i;

for(i=0;/**/ i>n /**/; i++ ) x[i]*=y; }

void main() {

int a[10]={12,4,6,9,0,-2,3,10,-6,19}; int i,k;

printf(\ scanf(\

fun_time(/**/ a[1] /**/,10,k); printf(\ for(i=0;i<10;i++) printf(\ printf(\ getch(); }

7. 程序Cmody571.c,其中的函数chg_str(char s[ ])将字符串中所有偶数位置上的大写字母转换为小写字母。(注:首位为奇数位。)

如:字符串khAB58fDR?!KM将转换为khAb58fdR?!kM #include

void chg_str(/**/ s[] /**/) { int i;

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

{if ((/**/ s[i]>='a' /**/ && s[i]<='Z' ) && i%2)

/**/ s[i]=s[i]-32; /**/ } }

main() {

2013-12

char str_s[100];

printf(\ gets(str_s); chg_str(str_s);

printf(\ puts(str_s); getch(); }

8. 修改程序Cmody572.c,对从9开始的连续奇数求和,当奇数和大于1000时停止计算,并输出停止时的奇数和。 #include void main()

{ /**/ int i,sum=9 /**/; i=9;

while(/**/ sum>1000 /**/) {

/**/ sum=+i; /**/ i++,i++; }

printf(\ getch(); }

9. 程序Cmody581.c的功能是从键盘输入一个字符串,输出该字符串中数字字符的个数。

#include void main() {

char str[100]; char *p; int count;

/**/ count=1; /**/ /**/ p=str[0]; /**/ scanf(\ while ( *p!='\\0' )

{ if(/**/ p>=0 /**/&& *p <= '9') count++; p++; }

printf(\ getch();

13

}

10. 修改程序Cmody582.c,其中函数fun_avg(int x[ ][N])计算并输出二维整型数组x表示的矩阵中各行元素的平均值。 #include #define M 4 #define N 5

void fun_avg(int x[][N]) {

int i,j,sum;

for(i=0; /**/ i

/**/sum=1;/**/

for(j=0;j

void main() {

int i,j ; int

a[M][N]={{2,5,6,8,13},{3,11,17,-9,2},{5,16,19,0,7},{-6,8,12,16,11}}; printf(\ for(i=0; i

for(j=0;j

printf(\ printf(\ } fun_avg(a); getch(); }

三.填空题

1. 将程序Ccon541.c填写完整,输出所有各位数字之和等于18的三位数正整数。 #include #include void main()

{ int i, a1, a2, a3;

2013-12

for(/**/ /**/; i<1000 ; i++) { a3=i/100;

a2=(i/10) % 10;

/**/ /**/ if(a1+a2+a3==18) printf(\ /**/); }

getch(); }

2. 补充程序Ccon542.c,查找并输出成绩在85分以上(含85分)学生的姓名和成绩。 #include #include void main()

{ /**/ /**/ student { char name[10];

float /**/ /**/; }; struct student stu[5]={\susa\ int i;

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

if(stu[i].score>=/**/ /**/) printf(\stu[i].name,stu[i].score ); getch(); }

3. 将程序Ccon551.c填写完整,实现输出100~999之间含有数字3和5的整数。 #include #include void main()

{ int i,gw,sw,bw;

for(i=100; /**/ /**/; i++) { bw=i/100;

sw=/**/ /**/ gw= i % 10 ;

if(gw==3 || sw==3 || bw==3) if(/**/ /**/) printf(\ }

getch();

14

}

4. 补充程序Ccon552.c,利用选择排序法对数组x中的数据按从大到小排序。 #include #include #define N 15 void main() { int x[N]={-7,2,6,-19,0,13,7,15,-8,35,10,-5,1,19,28};

int /**/ /**/, j, max_at, t ; for(i=0; i

for(j=i+1; j

x[i]=x[max_at];

/**/ /**/ } }

printf(\ for(i=0;i

printf(\ printf(\ getch(); }

5. 将程序Ccon561.c填写完整,分别统计输入整数中小于-10,大于零和最低位为7的个数。输入零时输出统计结果。 #include #include #include void main() { int x,na,nb,nc;

na=nb=nc=/**/ /**/;

printf(\integer number, end with 0:\\n\

scanf(\ while(x) { if(x<-10)

2013-12

/**/ /**/; else if(x>0) ++nb;

if( abs(x)==/**/ /**/) ++nc;

scanf(\ }

printf(\ getch(); }

6. 补充程序Ccon562.c,实现在数组a中查找指定的数,若有则显示“It?s found.”,否则显示“Not exist.”。 #include #include

/**/ /**/ N 13 void main() { int a[N]={1,6,-19,0,3,7,-8,5,22,11,-5,16,-10}; int i, /**/ /**/;

printf(\ scanf(\

for(/**/ /**/; i

printf(\ else

printf(\ getch(); }

7. 将程序ccon571.c填写完整,实现从键盘输入10个整数,输出大于第一个数的所有数的平均值。 #include #include void main() { int i,s[10]; float sum=0; int count=0;

printf(\ scanf(\ /**/);

15

for(i=1; i<10; i++) { scanf(\ if(s[i]>s[0]) { sum+=s[i];

/**/ /**/ } }

if(count==0)

printf(\ else

printf(\ getch(); }

8. 补充程序Ccon572.c,实现删除输入字符串中所有的?A?字母。

如:输入:kfgABybfhAAke 输出:kfgBybfhke /**/ /**/ #include void main() { char str[80]; int i,j;

printf(\ gets(str);

i=j=/**/ /**/; while( str[i]!='\\0') { if(str[i]!='A') { str[j]=str[i]; j++ ; }

/**/ /**/; }

str[j]='\\0';

printf(\ puts(str); getch(); }

9.程序ccon581.c,输出只能被3或7整除的所有三位正整数及其总数,每输出10个数后换行。

#include #include

2013-12

void main() { int i,count; count=0;

for(i=100; i<=999; i++)

if(/**/ /**/) { printf(\

/**/ /**/

if(count % 10 ==0) printf(\ }

printf(\ getch(); }

10. 补充程序Ccon582.c,其中的数fun(int x)的功能使输出正整数x除了1和x外的所有因子,若无输出项则提示为素数。 #include #include void fun(int x)

{ int /**/ /**/, flag=0; for(i=2; i<=x/2; i++) if(x%i==0)

{ printf(\ \ flag=1; }

if(flag==/**/ /**/)

printf(\}

void main() { int a;

printf(\ scanf(\ while(a<=0)

{ printf(\ scanf(\ }

fun(/**/ /**/); getch(); }

四.编程题

1. 打开程序Cprog541.c,对double fun(double x)函数编程,使其计算:

16

x3?1 fu( nx)?3x|e?sinx|?1.8 例如:fun(2.600)=0.007

#include #include #include double fun(double x) { /**/

/**/ }

void main() { double x;

printf(\ scanf(\ printf(\= %6.3lf\\n\ getch(); }

2. 打开程序Cprog542.c,完成其中Int fun(int x)函数:判断整数x(0

如:5出现在25右侧,5是同构数 25出现在625右侧,25是同构数 76出现在5576右侧,76是同构数

#include #include int fun(int x) { /**/

2013-12

/**/ }

void main() { int i;

for(i=1;i<1000;i++) if(fun(i))

printf(\ getch(); } ??

3. 打开程序Cprog551.c,对double fun(float x)函数编程,使其计算:

?2.50?fun(x)??0.3x?2.51?0.1x?5.52?x?00?x?10 x?10#include #include double fun(float x) { /**/

/**/ }

void main() { float x;

printf(\ scanf(\

printf(\ getch(); }

4.打开程序cprog552.c, 对double fun(int n)函数变成,根据形参n ,计算下列公式

17

前n 项的和:

1111111????????? 4710131619

如fun(99)=0.837335 #include #include double fun(int n) { /**/

/**/ }

void main() { int n;

printf(\ scanf(\

printf(\ getch(); }

5. 打开程序Cprog561.c,对double fun(float x)函数编程,使其计算:

?1?ex?nx)??1 fu(2?lnx(?3.5)?x?0x?0 x?0

#include #include #include double fun(float x) { /**/

2013-12

/**/ }

void main()

{ printf(\ printf(\ printf(\ getch(); }

6. 打开程序Cprog562.c,对void fib(int f[ ], int n)函数编程,使函数实现计算菲波那契数列的前n项,结果保存在数组f中。菲波那契数列如下: 1,1,2,3,5,8,13,21,34,… 其第一和第二项为1,其余各项均为前两项的和。

#include #include void fib(int f[], int n) { /**/

/**/ }

void main()

{ int data[32], m, i;

printf(\ scanf(\ fib(data,m);

for(i=0; i

printf(\ printf(\ getch(); }

7. 打开程序Cprog571.c,对double

18

fun(double x)函数编程,使其计算:

3sinx?x3 fu( nx)?1.7?x?2.2例如: fun(-3.780)=-6.800 #include #include #include double fun(double x) { /**/

/**/ }

void main() { double x;

printf(\ scanf(\

printf(\ getch(); }

8. 打开程序Cprog572.c,对long fun(int n)函数编程,计算斐波那契数列第n项的值。递推公式如下:

1? ??xn?xn?1?xn?2#include #include long fun(int n) { /**/

/**/

n?1,2n??3

2013-12

}

void main() { int n;

printf(\ scanf(\

printf(\ getch(); }

9. 打开程序Cprog581.c,对double fun(double x) 函数编程,使其计算:

nx)? fu(sin2x?3coxs1.3?co2sx

例如:fun(1.150)=2.476

#include #include #include double fun(double x) { /**/

/**/ }

void main() { double x;

printf(\ scanf(\

printf(\x,fun(x)); getch(); }

10. 打开程序Cprog582.c,对 Int fun(int a[ ][CL]函数编程。函数返回二维数组a表示的矩阵中元素的最大值。 #include #define RW 3 #define CL 5

19

int fun(int a[][CL]) { /**/

/**/ }

void main() { int arra[RW][CL] = {{18,21,31,78,5},{11,16,43,14,25},{28,42,21,14,15}}; int i,j,k;

printf(\ for(i=0; i

printf(\ printf(\

printf(\max number is:m\fun(arra)); getch(); }

2013-12

参考答案

(注:此答案并非官方答案,由于时间仓促,部分答案可能有误,敬请见谅!欢迎/**/ s[i]=s[i]+32; /**/ cmody572.c

/**/ int i, sum=0 /**/; /**/ sum<=1000 /**/ 大家指正!)

一. 选择题

1~10)B B C D C A B A D C 11~20)D C C A B D B D C B 21~30)D C B B D D B A C D 31~40)C B D C C D A C D D 41~50)D B A C B C B A D B 51~60)D D A D A A D D B B 61~70)B C A C C C B D A B 71~80)D D A C C A C A B C 81~90)C B C C C A A B D D 91~99)C B C C A D C A B

二. 改错题 cmody541.c /**/i=0; /**/

/**/s2[i]=s1[i]-1;/**/ /**/ s1[i] =='0'/**/ cmody542.c /**/ y=0; /**/ /**/ p++ /**/; /**/ y /**/ cmody551.c

/**/ i, count, num[100];/**/ /**/i%5 ==3 && i%7==2 /**/ /**/num[count]=i;/**/ cmody552.c /**/ int /**/ /**/ i,k/**/; /**/ 0/**/ cmody561.c

/**/ float result; /**/ /**/ x==1 || y==1 /**/ cmody562.c /**/ int y /**/ /**/ i

/**/char s[] /**/ /**/ s[i]>='A' /**/

/**/ sum+=i; /**/ cmody581.c

/**/ count=0; /**/ /**/ p=str; /**/ /**/ p>='0' /**/ cmody582.c /**/ i

/**/ sum*1.0/N /**/

三. 填空题 ccon541.c

/**/ i=100 /**/ /**/ a1=i; /**/ /**/ i /**/ ccon542.c

/**/struct /**/ /**/ score /**/ /**/ 85 /**/ ccon551.c

/**/ i<1000 /**/ /**/ i/10; /**/

/**/gw==5||sw==5||bw==5 ccon552.c /**/ i /**/ /**/N /**/

/**/x[max_at]=t; /**/ ccon561.c /**/ 0 /**/

/**/++na /**/; /**/ 7 /**/ ccon562.c

/**/#define /**/ /**/ x /**/ /**/ i=0 /**/ ccon571.c

/**/ &s[0] /**/

/**/ count++; /**/ ccon572.c

/**/#include /**/ /**/ 0 /**/;

20

/**/

2013-12

/**/ i++ /**/; ccon581.c

/**/ i%3==0||i%7==0 /**/ /**/count++; /**/ ccon582.c /**/ i /**/ /**/0 /**/ /**/ a /**/

四. 编程题 cprog541.c /**/

double y;

y=(x*x*x-1)/(fabs(exp(3*x)-sin(x))+1.8); return y; /**/

cprog542.c /**/ long t; int flag=0; t=(long)x*x;

if(x<10&&t==x) flag=1; else if(x>=10&&x<100&&t0==x) flag=1;

else if(x>100&&t00==(long)x) flag=1; return flag; /**/

cprog551.c /**/

double y; if(x<0) y=2.5;

else if(x<10) y=0.3*x+2.51; else y=0.1*x+5.52; return y; /**/

cprog552.c /**/

int i, sign=1, deno=1; double t, sum=0; for(i=1; i<=n; i++) { t=sign*1.0/deno; sum+=t; sign=-sign; deno=deno+3; }

21

return sum; /**/

cprog561.c /**/ double y;

if(x>0) y=1+exp(x); else if(x==0) y=1;

else y=log(x*x+3.5); return y; /**/

cprog562.c /**/ int i;

f[0]=f[1]=1;

for(i=2; i

cprog571.c /**/

double y;

y=(3*sin(x)+x*x*x)/(1.7+fabs(x-2.2)); return y; /**/

cprog572.c /**/ long y;

if(n==1||n==2) y=1;

else y=fun(n-1)+fun(n-2); return y; /**/

cprog581.c /**/ double y;

y=(sin(2*x)+3*cos(x))/sqrt(1.3+cos(2*x)); return y; /**/

cprog582.c **/int max, i,j; max=a[0][0];

for(i=0; i

if(a[i][j]>max) max=a[i][j]; return max; /**/

2013-12

22

本文来源:https://www.bwwdw.com/article/7ztw.html

Top