华拓科技网
您的当前位置:首页2006年6月份《c语言等级考试》模拟试卷集成[1]

2006年6月份《c语言等级考试》模拟试卷集成[1]

来源:华拓科技网
2006年6月份《C语言等级考试》模拟试卷集成 一、选择题部分 二、改错题部分 三、填空题部分 四、编程题部分

一、选择题

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

A)枚举类型不是基本类型 B)数组不是构造类型 C)变量必须先定义后使用 D)不允许使用空类型 2、下面关于C语言用户标识符的描述,正确的是(D)。

A)不区分大小写 B)用户标识符不能描述常量 C)类型名也是用户标识符 D)用户标识符可以作为变量名 3、下面叙述正确的是(b)。

A)2/3与2.0/3.0等价 B)(int)2.0/3与2/3等价 C)++5与6等价 D)’A’与”A”等价

4、已知char a;使用scanf()函数输入一个字符给变量a,不正确的函数调用是(B)。

A)scanf(“%d”,&a); B)scanf(“%lf”,&a); C)scanf(“%c”,&a); D)scanf(“%u”,&a); 5、下面叙述中,(A)不是结构化程序设计三种基本结构的共同特点。

A)先判断后执行 B)单入口,单出口 C)程序中没有执行不到的语句 D)无死循环 6、已知int a=3, b=5; 则表达式 a &&( ! b) 的值为(C)。

A)3 B)2 C)0 D)1 7、已知char a=’R’; 则正确的赋值表达式是(A)。

A)a=(a++)%4 B)a+2=3 C)a+=256-- D)a=’\\078’ 8、以下的语句中,无内嵌的if语句是(B)。

A)if(x= =y) x+=y; B)if(x>y && x!=y);

x+=y; C)if(x!=y)

scanf(“%d”,&x); else

scanf(“%d”,&y); D)if(x{x++;y++;}

9、设有整型变量x,下述语句(B)不会出现死循环。

A)for( ; ; x+=1) B)for( ; (x=getchar())!=’\\n’; ) ; C)while(1) {x++ ;} D)for(x=10; ;x--) ; 10、下列数组声明中,正确的是(A)。

A)int a[5]={0}; B)int a[]={0 1 2}; C)int a[5]=0; D)int a[] ; 11、以下数组定义中,正确的是(D)。

A)int a[2][3]={1,2,3,4,5,6,7}; B)int a[][]={{1,2,3},{4,5,6},{7,8,9}};

C)int a[2][]={1,2,3,4,5,6}; D)int a[][4]={6}; 12、设有如下数组定义:

char str[8]={“FuJian”};

则分配给数组str的存储空间是(C)字节。 A)6 B)7 C)8 D)9 13、以下程序的运行结果是(A)。

int fun(int array[4][4]) {int j;

for(j=0;j<4;j++) printf(“%2d”,array[2][j]); printf(“\\n”); }

main()

{int a[4][4]={0,1,2,0,1,0,0,4,2,0,0,5,0,4,5,0}; fun(a); }

A)2 0 0 5 B)1 0 0 4 C)0 1 2 0 D)0 4 5 0 14、若有以下宏定义,

#define MOD(x,y) x%y

则执行以下程序段后,z的值是(D)。 int z,a=15,b=100; z=MOD(b,a);

A)100 B)15 C)11 D)10

15、对于基类型相同的两个指针变量之间,不能进行的运算是(C)。

A)< B)= C)+ D)- 16、若函数fun的函数头为:

int fun(int i,int j)

且函数指针变量p定义如下: int (*p)(int i,int j);

则要使指针p指向函数fun的赋值语句是(B)。 A)p=*fun(); B)p=fun; C)p=fun(i,j); D)p=&fun; 17、设有以下定义语句:

struct student {int num;

char name[10]; float score; }wang,zhang;

则不正确的叙述是(C)。

A)struct是结构体类型的关键字 B)zhang是结构体变量名

C)wang是结构体类型名 D)num,name,score都是结构体类型student的成员名

18、若有以下定义:

struct link {int data;

struct link *next; }*head,*p;

并已建立如下图所示的链表结构:

next data next data NULL head data ……

指针p指向如下结点:

data next p

则能够把p所指结点插入到链表中成为链表第2个结点的程序段是(A)。 A)p->next=head->next;head->next=p; B)head->next=p;p->next=head->next; C)p.next=head.next;head.next=p;

D)(*head).next=p;(*p).next=(*head).next; 19、设有如下定义:

typedef int *INTEGER; INTEGER p,*q;

则(B)是正确的叙述。 A)p是int型变量 B)q是基类型为int的指针变量 C)p是基类型为int的指针变量 D)程序中可用INTEGER代替int类型名 20、以下程序的可执行文件名是file.exe。

main() int argc; char *argv[]; {int i;

for(i=2;iprintf(“%s%c”,argv[i],(i在DOS命令行输入:file My C Language and Programming<回车>,其输出结果是(A)。 A)C Language and Programming B)My C Language and Programming C)MyCLanguageandProgramming D)file My C Language and Programming

21、在C语言源程序中,以下叙述正确的是(C)。

A)main函数必须位于文件的开头 B)每行只能写一条语句 C)程序中的一个语句可以写成多行 D)每个语句的最后必须有点号 22、下面关于算术运算符的叙述,错误的是(A)。

A)其运算对象不包含函数

B)%(模运算符)的运算对象只能为整型量 C)算术运算符的结合方向是“自左至右”

D)自加和自减运算符的结合方向是“自右至左” 23、下面叙述中,(A)不是结构化程序设计中的三种基本结构之一。

A)数据结构 B)选择结构 C)循环结构 D)顺序结构

24、已知 double a=5.2; 则正确的赋值表达式是(A)。

A)a+=a-=(a=4)*(a=3) B)a=a*3=2 C)a%3 D)a=double(-3) 25、逻辑运算符的优先级依次为(C)。

A)|| && ! B)&& || ! C)! && || D)! || &&

26、对于整型变量x,与while(!x) 等价的是(B)。

A)while(x!=0) B)while(x= =0) C)while(x!=1) D)while(~ x) 27、下列数组声明中,正确的是(A)。

A)int a[10]; B)int n=10,a[n]; C)int N=10;int a[N]; D)int n;scanf(“%d”,&n);int a[n]; 28、有如下定义:

char str[6]={‘a’,’b’,’\\0’,’d’,’e’,’f’}; 则语句:

printf(“%s”,str); 的输出结果是(D)。 A)ab\\ B)abdef C)ab\\0 D)ab

29、执行以下程序段的输出结果是(B)。

int a=10,*p=&a; printf(“%d”,++(*p)); A)10 B)11 C)变量a的地址 D)变量a的地址+1

30、若有以下程序段,且0≤i<4,0≤j<3,则不能正确访问a数组元素的是(D)。

int i,j,(*p)[3];

int a[][3]={1,2,3,4,5,6,7,8,9,10,11,12}; p=a;

A)*(*(a+i)+j) B)p[i][j] C) *(p+i) [j] D)p[i]+j 31、若有以下定义:

struct link {int data;

struct link *next; }*head,*p;

并已建立如下图所示的链表结构:

p

data next data NULL head data next ……

则能保留链表其它结点,而删除P所指向结点的程序段是(A)。

A)head->next=p->next;free(p) B)head->next=p;p->next=head->next;free(p); C)free(p);head->next=p;p->next=head->next; D)free(p);head->next=p->next;

32、假定已有如下变量说明和枚举定义:

char ch; int j,k;

enum day{sun,mon,tue,wed,thu,fri,sat}; int a[sat]

判断下列语句是否符合语法规则,结果是(C)。 char a; /*语句1 */ j+k=j; /*语句2 */ if(a[mon]>0) j++; /*语句 3 */ A)语句2错误,其它正确 B)语句1正确,其它错误 C)语句3正确,其它错误 D)语句1错误,其它正确 33、以下(D)是正确的常量。

A)E-5 B)1E5.1 C)’a12’ D)32766L

34、标准函数fgets(s,n,f)的功能是(B)。

A)从文件f中读取长度为n的字符串存入指针s所指的内存

B)从文件f中读取长度不超过n-1的字符串存入指针s所指的内存 C)从文件f中读取n个字符串存入指针s所指的内存

D)从文件f中读取长度为n-1的字符串存入指针s所指的内存 35、关于C语言的源程序的叙述中,错误的是(C)。

A)C语言的源程序由函数构成

B)main函数可以书写在自定义函数之后 C)必须包含有输入语句 D)一行可以书写多个语句 36、下面叙述正确的是(A)。

A)制类型转换运算的优先级高于算术强运算 B)若a和b是整型变量,(a+b)++是合法的 C)’A’*’B’是不合法的 D)”A”+”B”是合法的

37、设有以下语句,则(D)是对a数组元素的不正确引用,其中0≤i<10。

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

A)a[p-1] B)*(&a[i]) C)p[i] D)*(*(a+i)) 38、结构化程序设计不包括(A)。

A)最优化 B)自顶而下,逐步细化 C)模块化设计 D)结构化编码

39、已知 int a=3,b=5; 则表达式 a= =3 && b !=1的值为(C)。

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

40、已知 int a[10]; 则对a数组元素引用不正确的是(A)。

A)a[10] B)a[3+5] C)a[10-10] D)a[5] 41、有如下定义

int a[][3]={1,2,3,4,5,6,7,8}; 则数组a的行数是(B)。 A)2 B)3 C)4 D)无法确定的 42、设有以下变量定义:

char str1[]=”string”, str2[8],*str3, *str4=”string”; (A)是正确的。

A)strcpy(str1,”china”); B)str2=”china”; C)strcpy(*str3,”china”); D)strcpy(str4[0],”china”); 43、如下fun函数的类型是(C)。

fun(float x) {double y; int z; y=x*x; z=(int)y; return(z); } A)void B)double C)int D)float 44、以下叙述中,正确的是(A)。

A)宏展开不占用运行时间,只占用编译时间 B)预编译处理命令行必须以分号结束 C)一个源程序只能有一个预编译处理命令行

D)使用带参数的宏定义时,应该说明每个参数的数据类型 45、设有如下变量定义:

char aa[ ][3]={‘a’,’b’,’c’,’d’,’e’,’f’}; char (*p)[3]=aa;

则以下程序段的运行结果是(D)。 p++;

printf(“%c”,**p); A)a B)b C)c D)d

46、设有以下定义语句:

struct student {int num;

char name[10]; float score; }wang,zhang;

则变量wang所占的内存字节数是(B)。 A)14 B)16 C)18 D)20 47、若有以下定义:

struct link {int data;

struct link *next; }a,b,c,*head,*p; 其中,指针head指向变量a,p指向变量c,a.next指向变量b,链表结构如下图所示: a b c

p data next head data next data NULL

则能够把c插入到a和b之间并形成新链表的程序段是(D)。 A)a.next=c; c.next=b; B)head.next=p; p.next=head.next; C)head->next=&c;p->next=head->next; D)(*head).next=p; (*p).next=&b; 48、设有如下定义:

typedef int *INTEGER; INTEGER p,*q;

则(b)是正确的叙述。

A)p是int型变量 B)q是基类型为int的指针变量 C)p是基类型为int的指针变量 D)程序中可用INTEGER代替int类型名 49、已知int a=’R’; 则正确的表达式是(A)。

A)a%10 B)a=int(3e2) C)2*a=a++ D)a=a+a=a+3

50、C语言对if嵌套语句的规定:else总是与(B)配对。

A)第一个if B)之前最近的且尚未配对的if C)缩进位置相同的if D)之前最近的if 51、设有如下函数定义:

int fun(char *str) {char *p=str;

while (*p != ‘\\0’) p++; return (p-str); }

则以下语句执行后的输出结果是(A)。 printf(“%d\\n”,fun(“Student”)); A)7 B)8 C)9 D)10

52、设有如下定义语句:

union u_type {int i; double x; float f; };

struct str_type {char str[100];

union u_type u[2]; }

则语句 printf(“%d”,sizeof(struct str_type)); 的输出结果是(B)。 A)100 B)116 C)120 D)200

53、对于整型变量x,下述if语句(B)与赋值语句:

x=x%2= =0?1:0; 不等价。

A)if(x%2!=0) x=0;else x=1; B)if(x%2) x=1;else x=0; C)if(x%2= =0) x=1;else x=0; D)if(x%2= =1) x=0;else x=1; 54、对于整型变量x和y,语句

for(x=0,y=0;(y!=123)&&(x<4);x++) y++; 中的“y++;”被执行(A)。 A)4次 B)0次 C)123次 D)3次 55、以下(D)是正确的变量名。

A)5f B)if C)f.5 D)_f5 56、设有如下程序段:

int a[3][3]={1,0,2,1,0,2,1,0,1},i,j,s=0; for(i=0;i<3;i++) for(j=0;j则执行该程序段后,s的值是(C)。 A)0 B)1 C)2 D)3

57、以下叙述中,正确的是(B)。

A)“#define PRICE=30”定义了与30等价的符号常量PRICE B)预编译处理命令行都必须以“#”开头 C)宏名只能包含大写字母和数字字符

D)在程序的一行上可以书写几个有效的宏定义 58、对枚举类型进行定义,不正确的是(A)。

A)enum b{1,2,3}; B)enum a{A,B,C}; C)enum c{D=3,E,F}; D)enum d{X=0,Y=5,Z=9}; 59、以下程序的功能是(C)。

#include

main() {FILE *fp; long int n;

fp=fopen(“wj.txt”,”rb”); fseek(fp,0,SEEK_END); n=ftell(fp); fclose(fp);

printf(“%ld”,n); }

A)计算文件wj.txt的起始地址 B)计算文件wj.txt的终止地址 C)计算文件wj.txt内容数 D)将文件指针定位到文件末尾 的字节

(以下红色字体为答案)

二、改错题 注意:(1)修改程序在每对“/**/”之间存在的错误;

(2)不得删改程序中所有的“/**/”注释和其它代码;

(3)完成修改后务必以原文件名保存程序,并运行该程序;

(4)源程序存放在KS文件夹下,须先运行Turbo C 再调用相应源程序文件。

(5)按Alt+Tab键,切换题目与Turbo C;按Alt+Enter键,切换Turbo C窗口大小。

1、程序cmody031.c的功能是:从键盘上输入两个整数,及一个运算符(+、-、*、/ 或%),进行相应的运算后输出运算的结果。

如输入:1+2 将输出:1+2=3

#include #include void main()

{ int m,n,result,flag=0;

/**/ char ch, /**/ /**/char ch; /**/ clrscr();

printf(\"Input an expression: \"); scanf(\"%d%c%d\

/**/ switch ch /**/ /**/ switch(ch) /**/ { case '+': result=m+n; break; case '-': result=m-n; break; case '*': result=m*n; break; case '%': result=m%n; break; case '/': result=m/n; break;

default: { printf(\"Error!\\n\"); flag=1; } }

if (!flag) printf(\"%d %c %d = %d\\n\ getch(); }

2、程序cmody032.c的功能是:输出201~300之间的所有素数,统计总个数。 #include #include void main() { int num; printf(\"\\n\"); num=fun();

printf(\"\\nThe total of prime is %d\ getch(); }

int fun()

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

for(m=201; m<=300;m+=2) { k=sqrt(m+1); for(i=2;i<=k;i++)

/**/ if(m/i==0) /**/ /**/ if(m%i= =0) /**/ break;

/**/ if(i==k) /**/ /**/ if(i>=k+1) /**/ { printf(\"%-4d\ n++;;

if(n%10==0) printf(\"\\n\"); } }

return n; }

3、程序cmody011.c的功能是:从字符串数组str1中取出ASCII码值为偶数且下标为偶数的字符依次存放在字符串t中。

例如,若str1所指的字符串为:4AZ18c?Ge9a0z! 则t所指的字符串为:4Z8z 注意:数组下标从0开始。 #include #include #include #include void main()

{ char str1[100], t[200]; int i, j;

/**/ i = 0; /**/ /**/ j = 0; /**/ clrscr();

strcpy(str1, \"4AZ18c?Ge9a0z!\"); for (i = 0; i/**/ if ((str1[i] %2== 0) && (i%2!=0)) /**/ /**/ if ((str1[i] %2== 0) && (i%2==0)) /**/ {

t[j] = str1[i]; j++; } }

t[j] = '\\0';

printf(\"\\n Original string: %s\\n\ printf(\"\\n Result string: %s\\n\} 4、程序cmody012.c中,函数fun(int n)的功能是:根据参数n,计算大于10的最小n 个能被3整除的正整数的倒数之和。例如:

1 1 1 1 1

fun(8)= — + — + — + — + …… + — =0.396 12 15 18 21 33

#include #include #include #include #define M 50 double fun(int n) { double y = 0.0; int i,j; j=0;

for(i=1;;i++) {

/**/ if((i<10)&&(i%3==0)) /**/ /**/ if((i>10)&&(i%3==0)) /**/ {

/**/ y+=1/i; /**/ /**/ y+=1.0/i; /**/ j++; }

if(j==n) break; }

return y; }

void main() { clrscr();

printf(\"fun(8) = %8.3lf\\n\}

5、程序cmody021.c输出如下所示图形: * *** ***** ******* *********

#include void main() {

/**/ int i; j; /**/ /**/ int i,j; /**/ for (i=1;i<=5;i++) {

for (j=1;j<=10-2*i;j++) printf(\" \");

/**/ for (j=1;j<=5;j++) /**/ /**/ for (j=1;j<=2*i-1;j++) /**/ printf(\"* \"); printf(\"\\n\"); } }

6、程序cmody022.c的功能是求解百元买百鸡问题:

设一只公鸡2元、一只母鸡1元、一只小鸡0.5元。问一百元买一百只鸡,公鸡、母鸡、小鸡数可分别为多少?有多少种分配方案?

#include #include

/**/int fun();/**/ /**/ int fun() /**/ { int hen,cock,chicken,n=0;

clrscr(); /**/ if((cock+hen+chicken==100)&&(chicken>=0)) /**/ for(cock=0;cock<=50;cock+=1) for(hen=0;hen<=100;hen=hen+1)

{ chicken=2*(100-hen-2*cock);

/**/ if(cock+hen+chicken=100) /**/ { n++;

printf(\"%d-->hen:%d,cock:%d,chicken:%d\\n\ if(n==20) getch(); } } return n; }

void main() { int num; num=fun();

printf(\"\\n There are %d solutions.\\n\ getch(); }

三、填空题

注意:(1)编写程序,补充在每对“/**/”之间的空白处,以完成题目的要求; (2)不得删改程序中所有的“/**/”注释和其它代码;

(3)完成填空后务必以原文件名保存程序,并运行该程序;

(4)源程序存放在KS文件夹下,须先运行Turbo C 再调用相应源程序文件。

(5)按Alt+Tab键,切换题目与Turbo C;按Alt+Enter键,切换Turbo C窗口大

小。

1、补充程序ccon021.c,使其计算满足下式的一位整数A和B的值。 A B × B A

—————— 4 0 3

#include void main() {

int a,b,k;

int plu = /**/ 403 /**/; for(a=1; a<10; a++) for(b=1; b<10; b++) {

k = (a*10+b) * /**/ (b*10+a) /**/ ; if(k==plu) printf(\"A = %d, B = %d\\n\ } }

2、补充程序Ccon022.c,使其实现输入若干整数,统计其中大于零和小于零的个数。以零结束输入。

#include void main() {

int n,a,b; /**/ a=0; b=0; /**/

scanf(\"%d\

while(/**/ n!=0 /**/) {

if(n>0) a++;

else /**/ b++ /**/ scanf(\"%d\ }

printf(\"Positive integer: %d, negative integer: %d\\n\}

3、补充程序Ccon023.c,该程序可测试歌德猜想:从键盘上输入一个大于6的偶数,总能找到两个素数,使得这两素数之和正好等于该偶数。

#include #include int prime(int n) { int k,flag=1;

for(k=2; k<=n/2+1; k++)

if (n%k==0) { flag=/**/ 0 /**/ ; break;} return flag; }

void main() { int num, a; clrscr(); do

{ printf(\"Please input an even number:\"); scanf(\"%d\

}while(num<=6||num%2==1); for(a=2;a<=num/2+1;a++)

if(prime(a) && prime(/**/ num-a /**/)) printf(\"\\n %d = %d + %d \}

4、补充程序Ccon031.c,使其用牛顿迭代法求方程2x3-4x2+3x-6=0在1.5附近的根。 #include #include

/**/void main() /**/ { float x,x0,f,f1; x=1.5; do

{ x0=x;

f=((2*x0-4)*x0+3)*x0-6; f1=(6*x0-8)*x0+3; x=x0-f/f1;

}/**/ while /**/(fabs(x-x0)>=1e-6); printf(\"the root is: %.2f\\n\}

5、补充程序Ccon032.c,该程序的功能是将输入的一行字符中的大写字母转变为相应的小写字母,小写字母则转变为相应的大写字母,其余字符不变。

#include void main() { char s[80]; int i;

printf(\"Please input a string: \");

for(i=0;((s[i]=getchar())!='\\n')&&(i<80);i++); s[i]='\\0';

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

if(s[i]>='a'&&s[i]<='z') s[i]=s[i]-32;

else if(/**/ s[i]>=’A’&&(s[i]<='Z' /**/) s[i]=s[i]+32; printf(\"%c\

} }

6、补充程序Ccon033.c,其中main函数通过调用average函数计算数组元素的平均值。 #include

float average(int *pa,int n) {

int k;

/**/ float avg=0.0; /**/ for(k=0;kavg = avg+/**/ pa[k] /**/; avg = avg/n; return avg; }

void main()

{ int a[5]={20,30,45,,23}; float m;

m=average(/**/ a /**/, 5); printf(\"Average=%f\\n\}

|x| - 2 7、补充程序Ccon011.c,使其计算 f(x)= ———— x2 + 1 #include #include void main() {

int x;

/**/ float f; /**/

printf(\"Input an integer: \"); scanf(\"%d\

f = /**/ (abs(x)-2.0)/(x*x+1) /**/ ; printf(\"F(x)=%f\\n\}

1 1 1 1

8、补充程序Ccon012.c,该程序用公式 ∏≈ 4×(1- — + — - — + …… + ——)

3 5 7 10001

计算圆周率的近似率。 #include void main() { double pi=0; long i, sign=1;

for(i=1;i<=10001;i+=2) {

pi+=1.0*sign/i;

sign=/**/ -sign /**/; }

pi*=/**/ 4 /**/; printf(\"%f\\n\}

9、补充程序Ccon013.c,程序实现从10个数中找出最大值和最小值。 #include #include int max,min;

void find_max_min(int *p,int n) {

int *q;

max=min=*p;

for(q=p; q*q) min=*q; }

void main() {

int i,num[10];

printf(\"Input 10 numbers: \");

for(i=0;i<10;i++) scanf(\"%d\ find_max_min(/**/ num /**/,10);

printf(\"max=%d,num=%d\\n\ }

四、编程题

注意:(1)在一对“/**/”之间编写程序,以完成题目的要求;

(2)不得删改程序中所有的“/**/”注释和其它代码;

(3)完成填空后务必以原文件名保存程序,并运行该程序;

(4)源程序存放在KS文件夹下,须先运行Turbo C 再调用相应源程序文件。

(5)按Alt+Tab键,切换题目与Turbo C;按Alt+Enter键,切换Turbo C窗口大小。

1、打开文件夹中的cprog021.c,完成其中的函数fun1,该函数的数学表达式是: ex + |x – 6 | fun1(x)= ——————

x + 1.3

例如: fun1(0.76) = 3.582 fun1(3.00) = 5.369

fun1(3.76) = 8.931

#include

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

double y = 0.0;

y=(exp(x)+fabs(x-6))/(x+1.3); return y; /**/ }

void main() {

clrscr();

printf(\"fun1(0.76) = %8.3lf\\n\ printf(\"fun1(3.00) = %8.3lf\\n\ printf(\"fun1(3.76) = %8.3lf\\n\}

2、打开文件夹中的cprog022.c,完成其中的函数fun2( char a[ ],char b[ ],char c [ ]), 实现:将三个字符串a、b、c从小到大排序后输出。

注意:字符串比较函数为strcmp (str1,str2),字符串赋值函数为 strcpy(str1,str2) 。 #include #include #include #include

void fun2(char a[],char b[],char c[]) { /**/

char st[100];

if (strcmp(a,b)>0)

{ strcpy(str,a);strcpy(a,b);strcpy(b,str);} (a,c)

if(strcmp(b,c)>0)

{ strcpy(str,b);strcpy(b,c);strcpy(c,str);} /**/ }

void main()

{ char str1[15]=\"Fuzhou\ clrscr();

fun2(str1,str2,str3);

printf(\"The ordered strings is : %s, %s, %s\\n\ getch(); }

3、打开文件夹中的cprog011.c,完成其中的函数 fun1,该函数的数学表达式是: 1+sin x + ex fun1(x)= ——————

1 + x

例如: fun1(0.76) = 2.175 fun1(3.00) = 5.307

fun1(3.76) = 9.111

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

double y = 0.0;

y=(1+sin(x)+exp(x))/(1+x); return y; /**/ }

void main() {

clrscr();

printf(\"fun1(0.76) = %8.3lf\\n\ printf(\"fun1(3.00) = %8.3lf\\n\ printf(\"fun1(3.76) = %8.3lf\\n\}

4、打开文件夹中的cprog012.c,完成其中的函数 fun2 ( int a[ ],int n,int b[ ],int c[ ]), 实现:1)将数组a中大于 – 20 的元素,依次存放到数组b中; 2)将数组b中的元素按照从小到大的顺序存放到数组c中; 3)函数返回数组b中的元素个数。 #include #include #include #include

int fun2(int a[],int n,int b[],int c[]) {

/**/ int j = 0; int i,t,k;

for(i=0;iif(a[i]>-20) { c[j]=b[j]=a[i]; j++; } for(i=0;ic[k])

{ t=c[i]; c[i]=c[k]; c[k]=t; } return j; /**/ }

void main()

{ int n = 10, i, nb;

int aa[10] = {12, -10, -31, -18, -15, 50, 17, 15, -20, 20}; int bb[10], cc[10]; clrscr();

printf(\"There are %2d elements in aa.\\n\ printf(\"They are: \");

for(i=0; inb = fun2(aa, n, bb, cc);

printf(\"Elements in bb are: \");

for (i=0; iprintf(\"Elements in cc are: \");

for(i=0; iprintf(\"There are %2d elements in bb.\\n\}

5、打开cprog031.c,完成其中的函数fun1,该函数的数学表达式是: 1.2 当x < 3时 fun1(x) = 10 当 x =3时 2x + 1 当 x>3时 例如:

fun1(0.76) = 1.200 fun1(3.00) = 10.000 fun1(3.76) = 8.520 #include #include double fun1(double x) {

/**/

double y = 0.0; if(x==3) y=10;

else if(x<3) y=1.2;

else y=2*x+1; return y; /**/ }

void main() {

clrscr();

printf(\"fun1(0.76) = %8.3lf\\n\ printf(\"fun1(3.00) = %8.3lf\\n\ printf(\"fun1(3.76) = %8.3lf\\n\}

6、打开cprog032.c,完成其中的函数fun (char *s),使程序实现统计输入字符串中的空格的个数。

#include int fun(char *s) { /**/ int n=0;

char *p=s; while(*p)

{ if(*p==' ') n++; p++; }

return n; /**/ }

void main() {

char str[255]; gets(str);

printf(\"%d\\n\}

因篇幅问题不能全部显示,请点此查看更多更全内容