求C语言上机题库 2010年的

Python027

求C语言上机题库 2010年的,第1张

2: 第2题 请编写函数fun,它的功能是:求出1到100之内能北7或者11整除,但不能同时北7和11整除的所有证书,并将他们放在a所指的数组中,通过n返回这些数的个数。

答案:

void fun(int *a, int *n)

{

int i,j=0

for(i=2i<1000i++)

if ((i%7==0 || i%11==0) &&i%77!=0)

a[j++]=i

*n=j

}

9: 第9题 编写一个函数fun,它的功能是:根据以下公式求p的值,结果由函数值带回。M与n为两个正整数,且要求m>n。 p=m!/n!(m-n)!

答案:

float fun(int m, int n)

{

float p,t=1.0

int I

for (i=1i<=mi++)

t=t*I

p=t

for(t=1.0,i=1i<=ni++)

t=t*I

p=p/t

for(t=1.0,i=1i<=m-ni++)

t=t*I

p=p/t

return p

}

10: 第10题 编写函数fun,它的功能是:利用以下的简单迭代方法求方程cos(x)-x=0的一个实根。

迭代步骤如下:(1)取x1初值为0.0; (2)x0=x1,把x1的值赋各x0

(3)x1=cos(x0),求出一个新的x1

(4)若x0-x1的绝对值小于0.000001,则执行步骤(5),否则执行步骤(2)

(5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。

程序将输出root=0.739085。

答案:

float fun()

{

float x1=0.0,x0

do

{

x0=x1

x1=cos(x0)

}

while(fabs(x0-x1)>1e-6)

return x1

}

19: 第19题 编写函数fun,该函数的功能是:从字符中删除指定的字符,同一字母的大、小写按不同字符处理。

答案:

void fun(char s[],int c)

{

int i=0

char *p

p=s

while(*p)

{

if(*p!=c)

{

s[i]=*p

i++

}

p++

}

s[i]='\0'

}

23: 第23题 请编写函数fun,该函数的功能是:判断字符串是否为回文?若是则函数返回1,主函数中输出yes,否则返回0,主函数中输出no。回文是指顺读和倒读都是一样的字符串。

答案:

int fun(char *str)

{

int I,n=0fg=1

char *p=str

while (*p)

{

n++

p++

}

for(i=0i<n/2i++)

if (str[i]==str[n-1-i])

else

{

fg=0

break

}

return fg

}

24: 第24题 请编写一个函数fun,它的功能是:将一个字符串转换为一个整数(不得调用c语言提供的将字符串转换为整数的函数)。

答案:

long fun (char *p)

{

long s=0,t

int i=0,j,n=strlen(p),k,s1

if(p[0]=='-')

i++

for(j=Ij<=n-1j++)

{

t=p[j]-'0'

s1=10

for(k=jk<n-1k++)

t*=s1

s+=t

}

if(p[0]=='-')

return –s

else

return s

}

25: 第25题 请编写一个函数fun,它的功能是:比较两个字符串的长度,(不得调用c语言提供的求字符串长度的函数),函数返回较长的字符串。若两个字符串长度相同,则返回第一个字符串。

答案:

char *fun(char *s,char *t)

{

char *p,*t1=t,*s1=s

int n=0m=0

while (*s1)

{

n++

s1++

}

while(*t1)

{

m++

t1++

}

if(n>=m)

p=s

else

p=t

return p

}

27: 第27题 请编写一个函数fun,它的功能是:求除1到m之内(含m)能北7或11整除的所有整数放在数组a中,通过n返回这些数的个数。

答案:

void fun(int m, int *a, int *n)

{

int I,j=0*n=0

for(i=1i<=mi++)

if (i%7==0 || i%11 ==0)

{

a[j]=I

j++

}

*n=j

}

29: 第29题 请编写一个函数fun,它的功能是:将ss所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。

答案:

void fun(char *ss)

{

int I,n

n=strlen(ss)

for(i=1i<ni+=2)

if(ss[i]>='a'&&ss[i]<='z')

ss[i]=ss[i]-32

}

31: 第31题 请编写函数fun,其功能是:将s所指字符串中除了下标为偶数、同时ascii值也为偶数的字符外,其余的全都删除;串中剩余字符所形成的一个新串放在t所指的一个数组中。

答案:

void fun(char *s,char t[])

{

int I,j=0,n

n=strlen(s)

for(i=0I,ni++)

if(i%2==0&&s[i]%2==0)

{

t[j]=s[i]

j++

}

t[j]='\0'

}

32: 第32题 请编写函数fun,其功能是:将s所指字符串中除了下标为奇数、同时ascii值也为奇数的字符之外,其余的所有字符都删除,串中剩余字符所形成的一个新串放在t所指的一个数组中。

答案:

void fun(char *s,char t[])

{

int I,j=0,n

n=strlen(s)

for(i=0I,ni++)

if(i%2!=0&&s[i]%2!=0)

{

t[j]=s[i]

j++

}

t[j]='\0'

}

38: 第38题 请编写函数fun,它的功能是:求出ss所指字符串中指定字符的个数,并返回此值。

答案:

int fun(char *ss, char c)

{

int n=0

while (*ss)

{

if(*ss==c)

n++

ss++

}

return n

}

48: 第48题 请编写函数fun,其功能是:将两个两位数的正整数a,b合并成一个整数放在c中。合并的方式是:将a数的十位和个位依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的百位和个位上。

答案:

void fun(int a,int b,long *c)

{*c=(a/10)*1000+(b/10)*100+(a%10)*10+b%10}

49: 第49题 请编写函数fun,其功能是:将s所指字符串中下标位偶数同时ascii值为奇数的字符删除,s中剩余的字符形成的新串放在t所指的数组中。

答案:

void fun(char *s,char t[])

{int i,j=0,n=strlen(s)

for(i=0i<ni++)

if(i%2==0&s%2!=0)

else

{f[j]=s

j++}

t[j]='\0'}

51: 第51题 请编写函数fun,其功能是:将所有大于1小于整数m的非素数存入xx所指的数组中,非素数的个数通过k传回。

答案:

void fun(int m,int *k,int xx[])

{int i,j

int t=0

for(i=2i<mi++)

{j=2

while(j,<i)

{if(i%j==0)

{xx[t]=i

t++

break}

j++}

*k=t}}

52: 第52题 编写一个函数fun,它的功能是:实现两个字符串的连接(不使用库函数strcat),即把p2所指的字符串连接到p1所指的字符串后。

答案:

void fun(char p1[],char p2[])

{int i=0,n=0

char *p=p1,*q=p2

while (*p)

{p++

n++}

i=n

while(*p)

{p1=*q

q++

i++}

p1='\0'}

53: 第53题 请编写函数fun,该函数的功能是:实现b=a+a,即把矩阵a加上a的转置,存放在矩阵b中。计算结果在main函数中输出。

答案:

void fun(int a[3][3],int b[3][3])

{int i,j,at[3][3]

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

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

at[j]=a[j]

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

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

b[j]=a[j]+at[j]}

58: 第58题 编写函数藏服那,它的功能是:求n以内(不包括n)同时能被3与7整除的所有自然数之和的平方根s,并作为函数值返回。

答案:

double fun(int n)

{double s=0.0

int i

for(i=1i<ni++)

if(i%3==0&i%7==0)

s=s+i

s=sqrt(s)

return s}

59: 第59题 请别写函数fun,该函数的功能是:将放在字符串数组中的m个字符串(每串的长度不超过n),按顺序合并组成一个新的字符串。

答案:

void fun(char a[m][n],char *b)

{int i,j,k=0

for(i=0i<mi++)

{for(j=0j<nj++)

if(*(*(a+i)+j))

{b[k]=*(*(a+i)+j)

k++}

else

break

b[k]='\0'}}

61: 第61题 第请编写函数fun,该函数的功能使:统计各年龄段的人数。N个年龄通过调用随机函数获得,并放在主函数的age数组中;要求函数把0至9岁年龄段的人数放在d[0]中,把10至19岁年龄段的人数放在d[1]中,把20至29岁的人数放在d[2]中,其余以此类推,把100岁(含100以上年龄的人数都放在d[10]中。结果在主函数中输出。

答案:

void fun(int *a,int *b)

{int i,j

for(j=0i<mj++)

b[j]=0

for(i=0i<ni++)

if(a>=0&a<=9)

b[0]+=1

else if(a>=10&a<=19)

b[1]+=1

else if(a>=20&a<=29)

b[2]+=1

else if(a>=30&a<=39)

b[3]+=1

else if(a>=40&a<=49)

b[4]+=1

else if(a>=50&a<=59)

b[5]+=1

else if(a>=60&a<=69)

b[6]+=1

else if(a>=70&a<=79)

b[7]+=1

else if(a>=80&a<=89)

b[8]+=1

else if(a>=90&a<=99)

b[9]+=1

else

b[10]+=1}

84: 第84题 请编写函数fun,其功能是:将两个两位数的正整数a b合并形成一个整数放在c中,合并的方式是:将a数的十位和个位数依次放在c的个位和百位上,b数的十位和个位数依次放在c数的千位和十位上。

答案:

void fun(int a,int b,long *c)

{c=(b/10)*1000+(a%10)*100+(b%10)*10+a/10}

87: 第87题 请编写函数fun,其功能是:将两个两位数的正整数a b合并形成一个整数放在c 中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的个位和百位上。

答案:

void fun(int a,int b,long *c)

{*c=(a/10)*1000+(a%10)*10+(b%10)*100+b/10}

91: 第91题 请编写函数fun,其功能是:将两个两位数的正整数a b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c的十位和千位上,b数的十位和个位数依次放在c数的个位和百位上。

答案:

void fun(int a, int b, long *c)

{

*c=(a%10)*1000+(b%10)*100+(a/10)*10+b/10

}

81: 第81题 请编写函数fun,其功能使:将两个两位正整数a b合并形成一个整数放在c中。合并的方式使:将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的千位和十位上。

答案:

void fun(int a,int b,long *c)

{*c=(b/10)*1000+(a/10)*100+(b%10)*10+a%10}

78: 第78题 请编写函数fun,其功能是:将s所指字符串中ascii值为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。

答案:

void fun(char *s,char t[])

{int i,j=0,n=strlen(s)

for(i=0i<ni++)

if (s%2!=0)

{t[j]=s

j++}

t[j]='\0'}

77: 第77题 请编写一个函数fun,其功能是:将两个两位数的正整数ab合并形成一个整数放在c中。合并方式是:将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的十位和千位上。

答案:

void fun(int a,int b,long *c)

{*c=(b%10)*1000+(a%10)*100+(b/10)*10+a/10}

71: 第71题 请编写函数fun,其功能时:将两个两位数的正整数a、b合并形成一个整数放在c中,合并的方式是:将a数的十位和个位数依次放在c数的十位和千位上,b的十位和个位整数依次放在c数的百位和个位上。

答案:

void fun(int a,int b,long *c)

{*c=(a%10)*1000+(b/10)*100+(a/10)*10+b%10}

72: 第72题 请编写函数fun,其功能是:将s所指字符串中下标为偶数的字符删除,串中剩余字符形成新串放在t所指数组中。

答案:

void fun(char *s,char t[])

{int i,j=0,n=strlen(s)

for(i=0i<ni++)

if(i%2!=0)

{t[j]=s

j++}

t[j]='\0'}

65: 第65题 请编写函数fun,其功能是:将两位数的正整数a、b合并成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的十位和千位上。

答案:

void fun(int a,int b,long *c)

{*c=(b%10)*1000+(a/10)*100+(b/10)*10+a%10}

40: 第40题 请编写函数fun,该函数的功能是移动字符串中内容,移动的规则如下:把第1到第m个字符,平移到字符串的最后,把第m+1到最后的字符移到字符串的前部。

答案:

void fun(char *w,int m)

{

char b[N]

int I,j=0

for(i=0i<mi++)

{

b[j]=w[i]

j++

}

for (i=0i<strlen(w)-mi++)

w[i]=w[i+m]

for(j=0j<mj++)

{

w[i]=b[j]

i++

}

w[i]='\0'

64: 第64题 请编写函数fun,其功能是:将s所指字符串中ascii值为奇数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。

答案:

void fun(char *s,char t[])

{int i,j=0,n

n=strlen(s)

for(i=0i<ni++)

if(s%2==0)

{t[j]=s

j++}

t[j]='\0'}

62: 第62题 请编写函数fun,该函数的功能是:统一一含字符串中单词的个数,作为函数值返回。一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间由若干个空格格开,一行的开始没有空格。

答案:

int fun (char *s)

{int i,n=0

for(i=0i<strlen(s)i++)

{if(s='a'&s<='z'&s[i+1]==''

‖s[i+1]=='\0')

n++}

return n}

这是原题题库

第一套 上机考试试题

1、填空题

下列给定程序中,函数fun()的作用是:将字符串tt中的大写字母都改为对应的小写字母,其他字符不变。例如,若输入“Ab,cD”,则输出“ab,cd”。

试题程序:

# include <stdio.h>

# include <stdio.h>

# include <conio.h>

Char【1】fun(char tt[])

{

int i

for (i=0tt[i]i++)

{

if ((tt[i]>=’A’)&&(tt[i]<=【2】))

tt[i]+=32

}

return(tt)

}

main()

{

char tt[81]

printf (“\nPlease enter a string:”)

gets (tt)

printf (“\nThe result string is: \n%s”,fun(【3】))

}

2、改错题

下列给定程序中,函数fun()的功能是逐个比较a,b两个字符串对应位置中的字符,把ASCII值小或相等的字符依次存放到c数组中,形成一个新的字符串。

例如:a中的字符串为fshADfg,b中的字符为sdAEdi,则c中的字符串应为fdAADf。

请改正程序中的错误,使它能得到正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

# include <stdio.h>

# include <string.h>

void fun(char *p,char *q,char *c)

{ int k=0

while(*p‖*q)

/***************found******************/

{ if (*p<=*q)

c[k]=*q

else c[k]=*p

if (*p) p++

if(*q) q++

/***************found*******************/

k++

}

}

main()

( char a[10]=”fshADfg”,b[10]=”sdAEdi”,c[80]={‘\0’}

fun(a,b,c)

printf(“The string a:”)puts(a)

printf(“The string b:”)puts(b)

printf(“The string c:”)puts(c)

}

3、编程题

请编写函数fun,其功能是将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的十位和个位数依次放在c数的百位和千位上。

例如,当a=16,b=35,调用该函数后,c=5361。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语名。

试题程序:

# include<stdio.h>

void fun(int a,int b,long *c)

{

}

main()

{

int a,b

long c

clrscr()

printf(“Input a,b”)

scanf(“%d%d”,&a&b)

fun(a,b,&c)

printf(“The result is:%d\n”,c)

}

还有10套

全国计算机二级考试试题题库(附答案)

下列各题 A) 、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项在答题

卡相应位置上涂黑,答在试卷上不得分。

(1) 应用软件是指

A) 所有能够使用的软件 B) 能被各应用单位共同使用的某种软件

C) 所有微机上都应使用的基本软件 D) 专门为某一应用目的而编制的软件

(2) 下列述叙中错误的是

A) 计算机要经常使用不要长期闲置不用

B) 为了延长计算机的寿命,应避免频繁开关计算机

C) 在计算机附近应避免磁场干扰

D) 计算机用几小时后,应关机一会儿再用

(3) 下列字符中,ASCII码值最小的是

A) A B) a C) Z D) x

(4) 用晶体管作为电子器件制成的计算机属于

A) 第一代 B) 第二代 C) 第三代 D) 第四代

(5) 下列各不同进制的四个无符号数中,最小的数是

A) ()2 B) (37)8 C) (75)10 D) (2A)16

(6) 二进制数转换成十六进制数是

A) B) C) D)

(7) 下列各无符号十进制数中,能用八位二进制表示的是

A) 296 B) 333 C) 256 D) 199

(8) 计算机的软件系统可分类为

A) 程序与数据 B) 系统软件与应用软件

D) 操作系统与语言处理程序 D) 程序、数据与文档

(9) 486机中的CPU同时能处理的二进制位数为

A) 8 B) 16 C) 32 D) 64

(10) 在使用计算机的过程中,需要重新启动DOS,则要

A) 按Ctrl+Break键 B) 按^C键 C) 按Ctrl+Alt+Del键 D) 按^H键

(11) 现要从软盘启动DOS(软盘中已存有DOS系统),设有如下一些操作:①打开计算机

电源②将该软盘插入A驱动器③关好A驱动器门。则冷启动的操作顺序应为

A) ①→②→③ B) ③→②→① C) ②→①→③ D) ②→③→①

(12) 设当前盘中某一文件路径为\A\C\B\,当前目录为\A。下列命令中错误的是

A) CD.. B) RD \A\C\B

C) TYPE \A\C\B\ D) TYPE C\B\

(13) 设当前盘中的根目录下有一子目录AB,在子目录AB下有一文件。现要查看文件

的内容,应使用命令

A) TYPE \AB B) TYPE \AB\

C) TYPE \ D) DIR \AB\

(14) 自动批处理文件必须放在

A) C盘根目录中 B) A盘根目录中

C) 启动盘的任一个目录中 D) 启动盘的根目录中

(15) 设当前盘当前目录为C:\USER\XY\P,且当前盘当前目录为空,则下列命令中能正

确执行的是

A) RD C:\USER\XY\P B) RD USER\XY\P

C) MD \USER\XY\P\USER D) MD \USER\XY\P\X\Y

(16) 下列DOS命令中,合法的是

A) DISKCOMP B) TYPE >>

C) COMP A: B: D) COMP A: A:

(17) 设当前盘为C盘,所用的所有软盘已格式化,且容量相同,则下列DOS命令中错

误的是

A) DISKCOPY A: A: B) COPY A:*.* C) COPY *.* D) COPY A:*.* C:

(18) 下列DOS命令中错误的是

A) TYPE >PRN B) TYPE PRN

C) COPY *.TXT PRN D) COPY CON PRN

(19) 下列四组DOS命令中,互相等价的一组是

A) COPY A:*.* B:与DISKCOPY A: B:

B) COPY +与TYPE >>

C) COPY + 与COPY +

D) TYPE *.FOR>CON与COPY *.FOR CON

(20) 设C盘目录结构如下:

且C盘根目录下文件的内容为

CD FORTRAN

CD \TC

如果在A驱动器中插入一张根目录中只有扩展名为.C的若干文件(即A盘中无DOS系统

文件)的软盘片,则由C盘启动DOS系统后,第一次键入下列命令中,正确的是

A) COPY A:\*.C B) COPY A:\*.C TC

C) COPY A:\*.C FORTRAN D) CD USER

(21) C语言提供的合法的数据类型关键字是

A) Double B) short C) integer D) Char

(22) 在C语言中,合法的长整型常数是

A) 0L B) 4962710 C) D)

(23) 表达式:10!=9的值是

A) true B) 非零值 C) 0 D) 1

(24) 合法的C语言中,合法的长整型常数是

A) '\t' B) "A" C) 65 D) A

(25) 若有说明和语句:

int a=5

a++

此处表达式a++的值是

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

(26) 在下列选项中,不正确的赋值语句是

A) ++tB) n1=(n2=(n3=0))C) k=i==jD) a=b+c=1

(27) 若有说明:int i,j=7, *p=&i,则与i=j等价的语句是

A) I= *PB) *P=*&JC) i=&jD) i=* *p

(28) 不能把字符串:Hello!赋给数组b的语句是

A) char b[10]={'H','e','l','l','o','!'}

B) char b[10]b="Hello!"

C) char b[10]strcpy(b,"Hello!")

D) char b[10]="Hello!"

(29) 若有以下说明:

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

char c='a',d,g

则数值为4的表达式是

A)a[g-c] B)a[4] C)a['d'-'c'] D)a['d'-c]

(30) 若有以下说明:

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

则数值为6的表达式是

A) *p+6 B) *(p+6) C) *p+=5 D) p+5

(31) 若有以下说明:

int w[3][4]o={{0,1},{2,4},{5,8}}

int(*p)[4]=w

则数值为4的表达式是

A) *w[1]+1 B) p++,*(p+1) C) w[2][2] D) p[1][1]

(32) 若程序中有下面的说明和定义

struct abc

{int xchar y}

struct abc s1,s2

则会发生的情况是

A) 编译进错 B) 程序将顺利编译`连接`执行

C) 能顺利通过编译`连接`但不能执行 D) 能顺利通过编译`但连接出错

(33) 能正确表示a≥10或a≤0的关系表达式是

A)a>=10 or a<=0 B)a>=10│a<=0

C)a>=10││a<=0 D)a>=10 ││a<=0

(34) 下面程序的输出是

main()

{ int x=3,y=6,a=0

while(x++!=(y+=o1))

{ a+o=1

if(y

#include

main()

{ char ss[10]="12345"

strcat(ss,"6789")

gets(ss)printf("%s\n",ss)

}

A) ABC B) ABC9 C) 123456ABC D) ABC456789

(35) 下面程序的输出是

main()

{ char *a=""

int v1=0,v2=0,v3=0,v4=0,k

for(k=0s[k]k++)

switch(s[k])

{ default:v4++

case '1': v1++

case '3': v3++

case '2': v2++}

printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4)}

A) v1=4,v2=2,v3=1,v4=1 B) v1=4,v2=9,v3=3,v4=1

C) v1=5,v2=8,v3=6,v4=1 D) v1=8,v2=8,v3=8,v4=8

(36) 下面程序的输出是

main()

{int k=11printf("k=%d,k=%o,k=%x\n",k,k,k)}

A)k=11,k=12,k=11 B)k=11,k=13,k=13 C)k=11,k=013,k=0xb D)k=11,k=13,k=b

(37) 若有以下程序段,w和k都是整型变量:

w=k

LB: if(w==0) go to LE

w--

printf("*")

goto LB

LE: ┆

则不能与上面程序段等价的循环语句是

A)for(w=kw!=0w--) printf("*")B)for(w=kw--w)printf("*")

C)w=kD)w=k

while(w--!=0)printf("*")w++do{ w--printf("*")}while(w!=0)

(38) 若有说明,double *p,a则能通过scanf语句正确给输入项读入数据的程序段是

A)*p=&ascanf("%lf",p)B)p=(double *)malloc(8)scanf("%f",p)

C) p=&ascanf("%lf",a)D)p=&ascanf("%le",p)

(39) 当执行下面程序且输入:ABC时,输出的结果是

#include

#include

main()

{ char ss[10]="12345"

gets(ss)printf("%s\n",ss)}

A) ABC B) ABC9 C) 123456ABC D) ABC456789

(40) 若有以下的说明和语句:

main()

{int t[3][2], *pt[3],k

fpr(k=ok<3k++)pt[k]=t[k]

}

则以一选项中能正确表示t数组元素地址的表达式是

A) &t[3][2] B) *pt[0] C) *(pt+1) D) &pt[2]

(41) 下面程序输出数组中的最大值,由s指针指向该元素.

main()

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

flr(p=a, s=ap-a<10p++)

if(---?---)s=p

printf("The max:%d",*s):

}

则在if语句中的判断表达式应该是

A) p>s B) *p>*s C) a[p]>a[s] D) p-a>p-s

(42) 下面程序的输出是

#include

main()

{ char*a="abcdefgh"

fun(a)puts(a)}

fun (char * s)

{ int x=0,ychar c

for(y=strlen(s)-1x

A)abcdefgh B)hgfdecba C)dcbahgfe D)hgfedcba

(43) 若有以下函数调用语句: fun(a+b,(x,y),fun(n+k,d,(a,b)))在此函数调用语句

中实参的个数是

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

(44) 下面程序的输出是

main()

{ int t=1fun(fun(t))}

fun(int h)

{ static int a[3]={1,2,3}

int k

for(k=0k<3k++) a[k]+=a[k]-h

for(k=1k<3k++) printf("%d",a[k])

printf("\n")return(a[h])}

A)1,2,3, B)1,3,5, C) 1,3,5, D) 1,3,5,

1,5,9, 1,3,5, 0,4,8, -1,3,7,

(45) C语言中,函数的隐含存储类别是

A)auto B)static C)extern D)无存储类别

(46) 下面程序的输出是

int w=3

main()

{ int w=10printf("%d\n",fun(5)*w)}