文档库 最新最全的文档下载
当前位置:文档库 › 2012年9月份全国二级C语言编程题(2012)

2012年9月份全国二级C语言编程题(2012)

2012年9月份全国二级C语言编程题(2012)
2012年9月份全国二级C语言编程题(2012)

1.假定输入的字符串中只包含字母和*号。

请编写函数fun,它的功能是:除了字符串前导和尾部的*号之外,将串中其它*号全部删除。形参h已指向字符串中第一个字母,形参p已指向字符串中最后一个字母。在编写函数时,不得使用C语言提供的字符串函数。例如,字符串中的内容

为;****A*BC*DEF*G*********删除后,字符串中的内容应当是;

****ABCDEFG********。在编写函数时,不得使用C语言提供的字符串函数。

void fun(char *a,char *h,char *p)

{

char b[81],*q;

int i=0,j;

q=a;

while(q

while(h<=p)

if(*h!='*'){b[i++]=*h;h++;}

else h++;

p++;

while(*p){b[i++]=*p;p++;}

b[i]='\0';

i=j=0;

while(b[i]) a[j++]=b[i++];

a[i]='\0';

}

2.请编写一个函数fun,它的功能是:根据以下公式求π的值(要求满足精度0.0005,即某项小于0.0005时停止迭代):

程序运行后,如果输入精度0.0005,则程序输出为3.140578。

double fun ( double eps)

{ int i=1;

double pi=0.0,a=1.0,b=1.0;

while(a/b>=eps)

{

pi=pi+a/b;

a=a*i;

b=b*(2*i+1);

i++;

}

return 2*pi;

}

3.

请编写一个函数fun,它的功能是:比较两个字符串的长度,(不得调用C语言提供的求字符串长度的函数),函数返回较长的字符串。若两个字符串长度相同,则返回第一个字符串。例如,输入beijing shanghai 为回车键)

函数将返回shanghai。

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

{

int count1=0,count2=0;

char *p,*q;

p=s,q=t;

while(*p++) count1++;

while(*q++) count2++;

if(count1>=count2) return s;

else return t;

} 4.规定输入的字符串中只包含字母和*号。

请编写函数fun,它的功能是:使字符串最

前面连续的*号不得多于n个;若多于n个,

则删除多余的*号;若少于或等于n个,则什

么也不做,字符串中间和尾部的*号不删除。

例如,字符串中的内容为:

*******A*BC*DEF*G****,若n的值为4,删

除后,字符串中的内容应当是:

****A*BC*DEF*G****;若n的值为8,则字符

串中的内容仍为:*******A*BC*DEF*G****。

n的值在主函数中输入。在编写函数时,不

得使用C语言提供的字符串函数。

void fun(char *a,int n)

{ char b[81];

int i=0,j=0,s=0,k;

while (a[i]=='*') {s++;i++;}

if (s>n)

{ for (k=0;k

{b[j]='*';j++;}

while (a[i]) {b[j]=a[i];j++;i++;}

b[j]='\0'; i=0;j=0;

while (b[j])

{ a[i]=b[j];i++;j++;}

a[i]='\0';

}

}

5.请编写一个函数fun,它的功能是:计算n

门课程的平均分,计算结果作为函数值返

回。例如:若有5门课程的成绩是:

90.5,72,80,61.5,55,则函数的值为:

71.80。

float fun(float *a,int n)

{

int i;

float ave=0.0;

for(i=0;i

ave+=a[i]/n;

return ave;

}

6.

某学生的记录由学号、8门课程成绩和平均

分组成,学号和8门课程的成绩已在主函数

中给出。请编写函数fun,它的功能是:求

出该学生的平均分放在记录的ave成员中。

请自己定义正确的形参。例如,学生的成绩

是:85.5,76,69.5,85,91,72,64.5,87.5,

他的平均分应当是:78.875。

void fun(STREC *p)

{ int i;

double aver=0.0;

for (i=0;i

aver=aver+(*p).s[i];

(*p).ave=aver/N;

}

7.函数fun的功能是:将两个两位数的正整

数a、b合并形成一个整数放在c中。合并的

方式是:将a数的十位和个位数依次放在c数

的百位和千位上,b数的十位和个位数依次

放在c数的个位和十位上。

例如,当a=45,b=12。调用该函数后,

c=5421。

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

{

*c=a%10*1000+a/10*100+b%10*10+b/10;

}

8.学生的记录由学号和成绩组成,N名学生

的数据已在主函数中放入结构体数组s中,

请编写函数fun,它的功能是:把高于等于

平均分的学生数据放在h所指的数组中,高

于等于平均分的学生人数通过形参传回,平

均分通过函数值返回。

double fun(STREC *a,STREC *b,int *n)

{

int i;

double ave=0.0;

*n=0;

for(i=0;i

ave+=a[i].s/N;

for(i=0;i

if(a[i].s>=ave) b[(*n)++]=a[i];

return ave;

}

9.学生的记录由学号和成绩组成,N名学生

的数据已在主函数中放入结构体数组s中,

请编写函数fun,它的功能是:按分数的高

低排列学生的记录,高分在前。

方法一

void fun(STREC a[])

{

int i,j;

STREC t;

for(i=0;i

for(j=i+1;j

if(a[i].s

{

t=a[i]; a[i]=a[j]; a[j]=t;

}

}

方法二

void fun(STREC a[])

{

int i,j,p;

STREC t;

for(i=0;i

{

p=i;

for(j=i+1;j

if(a[p].s

if(p!=i)

{

t=a[i];a[i]=a[p];a[p]=t;

}

}

}

10.学生的记录由学号和成绩组成,N名学生

的数据已在主函数中放入结构体数组s中,

请编写函数fun,它的功能是:函数返回指

定学号的学生数据,指定的学号在主函数中

输入。若没找到指定学号,在结构体变量中

给学号置空串,给成绩置-1,作为函数值返

回。(用于字符串比较的函数是strcmp)。

STREC fun(STREC *a,char *b)

{

int i;

STREC t={"",-1};

for(i=0;i

if(strcmp(a[i].num,b)==0) return a[i];

return t;

}

11.学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:把指定分数范围内的学生数据放在h所指的数组中,分数范围内的学生人数由函数值返回。例如,输入的分数是60 69,则应当把分数在60到69的学生数据进行输出,包含60分和69分的学生数据。主函数中将把60放在low中,把69放在heigh 中。

int fun(STREC *a,STREC *b,int l,int h)

{

int i,j=0;

for(i=0;i

if(a[i].s>=l&&a[i].s<=h) b[j++]=a[i];

return j;

}

12.N名学生的成绩已在主函数中放入一个

带头节点的链表结构中,h指向链表的头节点。请编写函数fun,它的功能是:求出平均分,由函数值返回。例如,若学生的成绩是:85,76,69,85,91,72,64,87;则平均分应当是:78.625。

double fun(STREC *h)

{

double ave=0.0;

STREC *p;

int c=0;

p=h->next;

while(p!=NULL)

{ ave+=p->s;

c++;

p=p->next;

}

return ave/c;

}

13.请编写一个函数 void fun(int bb[ ], int *n, int *y),其中*n表示 bb 数组中元素的个数。函数的功能是:删除 bb 中所有值为 y 的元素。bb数组元素的值和y的值由主函数通过键盘读入。

void fun (int bb[], int *n,int y)

{ int i,j=0;

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

if(bb[i]!=y) bb[j++]=bb[i];

*n=j;

}

14.请编写一个函数 void fun ( int

tt[M][N], int pp[N ] ),tt是一个 M 行 N 列的二维数组。函数的功能是:求出数组tt 里每列中的最小元素,并依次放入 pp 数组中。tt 数组中的数据由主函数从键盘读入。void fun ( int tt[M][N], int pp[N] )

{

int i,j,min;

for(i=0; i

{

min=tt[0][i];

for(j=0; j

if (min>tt[j][i])

min=tt[j][i];

pp[i]=min;

}

} 15.请编写一个函数unsigned fun

(unsigned w),w是一个大于10的无符号

整数,若w是n(n≥2)位的整数,函数求出

w的后n-1位的数作为函数值返回。例如:w

值为5923,则函数返回923;w值为923,

则函数返回23。

unsigned fun ( unsigned w )

{

unsigned s=0,i=1;

while (w>10)

{

s=s+w%10*i;

i=i*10;

w=w/10;

}

return s;

}

16.请编一个函数void fun(int *pt),它的

作用是:用筛选法求出100之内的素数,并

通过整型指针返回主函数。

void fun ( int *pt )

{

int i,j,flag;

*pt=2;*pt++;

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

{

flag = 1;

for(j=2;j

if(i%j==0)

flag=0;

if(flag)

{

*pt=i;*pt++;

}

}

*pt=0;

}

17.请编写一个函数void fun (char *s),函

数的功能是把字符串s中所有的字母改写成

该字母的下一个字母,字母'z'改写成字母

'a',字母'Z'改写成字母'A'。大写字母仍

为大写字母,小写字母仍为小写字母,其它

的字符不变。例如:s串中原来的字符串为:

"Mn.123Zxy",则调用该函数后,s串变为:

"No.123Ayz"。

fun ( char *s )

{

int i=0;

while(s[i])

{

if(s[i]>='a'&&s[i]<'z'||s[i]>='A'&&s[i]<'Z')

s[i]=s[i]+1;

else if(s[i]=='z') s[i]='a';

else if(s[i]=='Z') s[i]='A';

i++;

}

}

18.请编一个函数double Acc(int k, double

dd[]),它的功能是:求出数组dd中前k个

数的小数部分的和,并返回此值。例如:

输入4和101.91、213.87、345.79、420.83,

则输出3.400000。

double Acc( int k, double dd[] )

{

double s=0.0;

int i;

for(i=0;i

s+=dd[i]-(int)dd[i];

return s;

}

19.函数char * MyDelete( char * str, char

c )的功能是:在字符串str中删除变量c中

的字符,有几个删几个,并返回所删字符的

个数。例如,若输入字符串"ab abc bcdef "

和字符'b',则应输出字符串"a ac cdef "

和 3(表示删了3个字符' b')。

int MyDelete( char* str, char c )

{

int i, j=0, k=0;

for( i = 0; str[i]; i++ )

if( str[i] != c )

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

else

k++;

str[j]= 0;

return( k );

}

20.请编制函数void Mtrx(int n),输出一

个如下的n阶方阵。变量n从文件

c9670503.in中读取。

例如,若读入4,则输出

1 2 3 4

8 7 6 5

9 10 11 13

16 15 14 13

void Mtrx( int n )

{

int a[M]={0},d=0, i, j, k;

FILE *fp ;

fp=fopen("dat52.dat","w");

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

for( j=0; j

{d += 1; a[j]=d; }

if (i % 2)

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

{ printf( " %3d", a[k] ); fprintf(fp,

" %3d", a[k]) ; }

else

for( k=n-1;k>=0;k-- )

{ printf( " %3d", a[k] ); fprintf(fp,

" %3d", a[k]) ;}

printf("\n");

fprintf(fp, "\n");

}

fclose(fp) ;

}

21.请编一个函数double Pdt(int n,double pp[]),它的功能是:求出数组pp中n个数的整数部分的和,并返回此值。例如:若输入4和11.91、23.87、35.79、40.83,则输出109.000000,整数部分的值应小于10的16次方。

double Pdt( int n, double pp[] )

{

int i, int_data;

double result = 0;

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

{

int_data = (int)pp[i];

result += int_data;

}

return result;

}

22.

请编一个函数char * EXUL(char tt[]),它的功能是:将字符串tt中的大写字母都改为对应的小写字母,其它字符不变并返回修改后的字符串。例如,若输入字符串:"Ab, cD",则输出结果为:"ab, cd"。

char* EXUL( char tt[] )

{

int i;

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

if(tt[i]>='A'&&tt[i]<='Z')

tt[i]=tt[i]+32;

return tt;

}

23.请编一个函数int day(int k,int m,int n),其功能是:返回小蚕需要多少天才能爬到树顶(树高k厘米,小蚕每天白天向上爬m 厘米,每天晚上因睡觉向下滑n厘米,爬到顶后不再下滑)(n<m<k)。例如,若分别输入253、71、29给 k、m、n,则输出结果为:6。

int day( int k, int m, int n )

{

int d=0,s=0;

while (s<=k)

{

s=s+m;

d++;

if(s>k) break;

s-=n;

}

return d;

} 24.请补充完成函数void Move(int n,int

xx[],int k),它的功能是:将数组xx(有n

个元素)的前k个元素(k<n)移到数组的

尾部,变为后k个元素,但是数组的这两段

(原前k个元素为一段、另外的n-k个元素为

一段)中元素的顺序不得改变。例如,若输

入:7和 1 2 3 4 5 6 7,再输入:5,则输

出应为:6 7 1 2 3 4 5。

void Move( int n, int xx[], int k )

{

int i,j,t;

for(i=0;i

{

t=xx[0];

for(j=0;j

xx[j]=xx[j+1];

xx[n-1]=t;

}

}

25.请编一个函数char * EXUL(char tt[]),

它的功能是:将字符串tt中的每个单词的首

字符改为对应的大写字母,首字符后的字母

都改为对应的小写字母,其它字符不变并返

回修改后的字符串。例如,若输入字符串:

"ab, cD bOY!",则输出字符串为:"Ab, Cd

Boy!"。

char* EXUL( char tt[] )

{

int i,f=1;

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

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

{ if(f==1) tt[i]-=32;

f=0;

}

else if(tt[i]>='A'&&tt[i]<='Z')

{

if(f==0) tt[i]+=32;

f=0;

}

else f=1;

return tt;

}

26.请编写一个函数 void fun (int x, int

pp[], int *n),它的功能是:求出能整除 x

且不是偶数的各整数,并放在数组pp 中,

这些除数的个数由 n 返回。运行时输入x的

值为30,则运行结果为:1 3 5 15。

void fun(int x, int pp[], int *n)

{ int i,j=0;

for( i=1;i<=x;i=i+2)

if( x%i==0)

pp[j++]=i;

*n=j;

}

27.请编写一个函数fun,它的功能是:将一

个数字字符串转换为一个整数(不得调用C

语言提供的将字符串转换为整数的函数)。

例如,若输入字符串"-1234",则函数把它

转换为整数值 -1234。

long fun ( char *p)

{

long n=0;

int flag=0;

while(*p!='\0') {

if(*p=='-')

flag=1;

else if (*p=='+')

flag=0;

else

n=n*10+(*p-'0');

p++;

}

if (flag==1) n=-n;

return n;

}

28.请编写一个函数fun,它的功能是:求出

1到m之内(含m)能被7或11整除的所有整数

放在数组a中,通过n返回这些数的个数。例

如,若传送给m的值为50,则程序输出:7 11

14 21 22 28 33 35 42 44 49

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

{

int i,count=0;

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

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

a[count++]=i;

}

}

*n=count;

}

29.请编写一个函数fun,它的功能是:找出

一维整型数组元素中最大的值和它所在的

下标,最大的值和它所在的下标通过形参

传回。数组元素中的值已在主函数中赋予。

主函数中x是数组名, n是x中的数据个数,

max存放最大值,index存放最大值所在元素

的下标。

void fun(int a[], int n , int *max, int

*d )

{

int i,base,subscript;

base=a[0];

subscript=0;

for(i=1;i

{

if(a[i]>base)

{

subscript=i;

base=a[i];

}

}

*max=base;

*d=subscript;

}

30.请编写函数fun,其功能是:计算并输出给定数组(长度为9)中每相邻两个元素之平均值的平方根之和。例如,给定数组中的9个元素依次为12.0、34.0、4.0、23.0、34.0、45.0、18.0、3.0、11.0,输出应为:

s=35.951014。

double fun(double x[9])

{int i ;

double avg=0.0,sum=0.0;

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

{avg=(x[i]+x[i+1])/2;

sum+=sqrt(avg);

}

return sum;

}

31.请编写函数fun,它的功能是:计算并输出n(包括n)以内能被5或9整除的所有自然数的倒数之和。例如,在主函数中从键盘给n输入20后,输出为:s=0.583333。

double fun(int n)

{int i;

double sum=0.0;

if(n>0&&n<=100)

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

if(i%5==0||i%9==0)

sum+=1.0/i;

}

return sum;

}

32.请编写函数fun,其功能是:计算并输出下列多项式的值:

S = 1 + 1/1! + 1/2! + 1/3! + 1/4! + ... + 1/n!例如,在主函数中从键盘给n 输入15,则输出为:s=2.718282。

double fun(int n)

{double m=1.0;

int i;

double p=1.0;

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

{p=p*i;

m=m+1.0/p;

}

return (m);

}

33.请编写函数fun,其功能是:计算并输出3到n之间所有素数的平方根之和。例如,在主函数中从键盘给n输入100后,输出为:sum=148.874270。注意:要求n的值大于2但不大于100。部分源程序在文件prog.c中。double fun(int n)

{

int i,j=0;

double s=0;

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

{ for (j=2;j

if (i%j==0) break;

if (j==i) s=s+sqrt(i);

}

return s;

} 34.请编写函数fun,其功能是:计算并输出

S=1+(1+2^0.5)+(1+2^0.5+3^0.5)+……

+(1+2^0.5+3^0.5+……+n^0.5)例如,在主

函数中从键盘给n输入20后,输出为:

s=534.188884。注意:要求n的值大于1但不

大于100。

double fun(int n)

{int i;

double fac=1.0;

double sum=1.0;

if (n>1&&n<=100)

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

{fac+=sqrt(i);

sum+=fac;

}

return sum;

}

35.请编一个函数fun(char *s),函数的功

能是把字符串中的内容逆置。例如:字符串

中原有的内容为:abcdefg,则调用该函数

后,串中的内容为:gfedcba。

{

int i ,length;

char tmp;

length = strlen( s );

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

{

tmp = s[i];

s[i] = s[length - i - 1];

s[length - i - 1] = tmp;

}

}

36. 编写程序,实现矩阵(3行3列)的转

置(即行列互换)。

例如,输入下面的矩阵:

100 200 300

400 500 600

700 800 900

程序输出:

100 400 700

200 500 800

300 600 900

void fun(int array[3][3])

{ int i,j;int b[3][3];

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

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

b[j][i]=array[i][j];

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

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

array[i][j]=b[i][j];

}

37. 请编一个函数fun(int *a,int n,int

*odd,int *even),函数的功能是分别求出

数组中所有奇数之和以及所有偶数之和。形

参n给出数组中数据的个数;利用指针odd返

回奇数之和,利用指针even返回偶数之和。

例如:数组中的值依次为:1,9,2,3,11,

6;则利用指针odd返回奇数之和24;利用指

针even返回偶数之和8。

fun ( int *a, int n, int *odd, int

*even )

{

int i;

*odd = * even = 0;

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

if (a[i] % 2 == 1)

*odd += a[i];

else

*even += a[i];

}

38.要求程序的功能是:把20个随机数存入

一个数组,然后输出该数组中的最小值。其

中确定最小值的下标的操作在fun函数中实

现,请给出该函数的定义。

int fun(int list[],int size)

{ int x,i;

x=0;

for (i=1;i

if (list[x]>list[i]) x=i;

return x;

}

39. 请编一个函数float fun(double h),

函数的功能是对变量h中的值保留2位小数,

并对第三位进行四舍五入(规定h中的值为

正数)。例如:h值为8.32433,则函数返回

8.32; h值为8.32533,则函数返回8.33。

float fun ( float h )

{ long num;

h=h+(float)0.005;

h=h*100;

num=(long)h;

h=(float)num;

h=h/100;

return h;

}

40. 编写函数 int fun(int lim,int

aa[MAX]),该函数的功能是求出小于lim的

所有素数并放在aa数组中,该函数返回求出

素数的个数。

int fun(int lim,int aa[MAX])

{ int i,j=0,k=0;

for (i=2;i

{ for (j=2;j

if (i%j==0) break;

if (j==i) aa[k++]=i;

}

return k;

}

41.请编写函数fun,函数的功能是求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。

例如:二维数组中的值为

1 3 5 7 9

2 9 9 9 4

6 9 9 9 8

1 3 5 7 0

则函数值为61。

int fun ( int a[M][N] )

{

int i, j, sum = 0;

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

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

if ((i == 0)||(i == M - 1)||(j == 0)||(j == N - 1) )

sum += a[i][j];

return sum;

}

42.请编写函数fun,对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按降序排列。例如,原来的字符串为CEAedca,排序输出为CedcEAa。

int fun(char *s,int num)

{int i,j,h,t;

for (i=1;i

{ h=i;

for (j=i;j

if (s[h]

if (h!=i)

{ t=s[h];s[h]=s[i];s[i]=t;}

}

}

43.请编一个函数 void fun(int

tt[M][N],int pp[N]),tt指向一个N行N列的二维数组,求出二维数组每列中最小元素,并依次放入pp所指一维数组中。二维数组中的数已在主函数中赋予。注意:部分源程序存在文件prog.c中。

void fun(int tt[M][N],int pp[N])

{

int i,j,min;

for(j=0;j

{ min=tt[0][j];

for(i=0;i

if(min>tt[i][j])

min=tt[i][j];

pp[j]=min;

}

}

44.编写一个函数,从传入的num个字符串找出最长的一个字符串,并通过形参指针max 传回该串地址。(注意:用****作为结束输入的标志。)

fun(char(*a)[81],int num,char **max)

{

int i;

*max=a[0];

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

if(strlen(*max)

*max=a[i];

} 45.请编一个函数fun,其中n所指存储单元

中存放了数组中元素的个数。函数的功能

是:删除所有值为y的元素。数组元素中的

值和y的值由主函数通过键盘输入。

void fun(int bb[],int *n,int y)

{

int i,j=0;

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

if(bb[i]!=y)

bb[j++]=bb[i];

*n=j;

}

46 .编写一个函数,该函数可以统计一个

长度为2的字符串在另一个字符串中出现的

次数。例如,假定输入的字符串为:asd

asasdfg asd as zx67 ask mklo,子字符串

为:as,则应输出6。

i nt fun(char *str,char *substr)

{ char *p=str,*q,*r;

int c=0;

while(*p)

{ r=p,q=substr;

while(*q==*r&&*q) q++,r++;

if(*q=='\0') c++;

p++;

}

return c;

}

47.请编写一个函数int fun(int x),它的

功能是:判断整数x是否是同构数。若是同

构数,函数返回1;否则返回0。所谓“同构数”

是指这样的数,它出现在它的平方数的右

边。例如:输入整数5,5的平方数是25,5

是25中右侧的数,所以5是同构数。x的值由

主函数从键盘读入,要求不大于100。注意:

部分源程序存在文件prog.c中。

int fun ( int x )

{

if (x < 10)

return !((x * x - x) % 10);

else

return !((x * x - x) % 100);

}

48.请编写函数fun,函数的功能是:在字符

串中的所有数字字符前加一个$字符。例如,

输入A1B23CD45,则输出为:

A$1B$2$3CD$4$5。

void fun(char *s)

{ char str[80];

int i=0,j=0;

while(s[i])

{

if(s[i]>='0'&&s[i]<='9')

str[j++]='$';

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

i++;

}

str[j]='\0';

strcpy(s,str);

}

49.请编一个函数fun(char *s),函数的功

能是把字符串中所有的字符前移一个位置,

串中的第一个字符移到最后。例如:原有的

字符串为:Mn.123xyZ,则调用该函数后,

串中的内容为:n.123xyZM。

void fun(char *s)

{

int i=0,t;

t=s[0];

while(i

s[i]=s[i+1],i++;

s[i]=t;

}

50.请编写函数fun,函数的功能是:将

所有大于1小于整数m的非素数存入xx所

指数组中,非素数的个数通过k传回。例

如,若输入:17,则应输出:9和4 6 8 9

10 12 14 15 16。

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

{ int i,j;

*k=0;

for(i=0;i

{

for(j=2;j

if(i%j==0) break;

if(j

xx[(*k)++]=i;

}

}

51.请编写函数fun,函数的功能是:将s所

指字符串中下标为奇数位置上的大写字母

转换为字母序列中的下一个小写字母;若该

位置上是小写字母,则不转换;若该位置上

是大写字母Z,则仅转换成小写字母z。例如,

输入:ABCdXZZZZ,则输出为:AcCdXzZz。

注意:部分源程序存在文件prog.c中。

void fun(char *s)

{ int i=0;

while (s[i]!='\0')/*假如s[i]不为字符

串结束符,则继续循环,否则退出循环*/

{ if ((s[i]=='Z')&&(i%2==1))

s[i]='z';/*假如s[i]为大写字母Z且在字

符串中下标为奇数的位置上,则转换成小写

字母z*/

else if ((s[i]>='A' && s[i]<'Z') &&

(i%2==1)) s[i]=s[i]+33;/*假如s[i]为除

大写字母Z以外的字母,则直接转换成该字

母的小写字母状态的下一个字母*/

i++;

}

}

52.程序定义了N×N的二维数组,并在主函数中赋值。请编写函数fun,函数的功能是:给数组周边元素置0值。

例如:a数给中的值为

|0 11 12 7 9|

|1 9 7 4 5|

|20 13 18 3 1|

a= |14 5 6 8 2|

|15 9 17 4 1|

|0 0 0 0 0|

|0 4 7 9 0|

则返回主程序后a数组中的值应为|0 3

18 18 0|

|0 8 6 5 0|

|0 0 0 0 0|

注意:部分源程序存在文件prog.c中。

fun ( int w[][N] )

{

int i, j;

for (i = 0; i < N; i++)/*以先行后列的顺序将数组的周边元素置0*/

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

if ((i == 0)||(i == N- 1)||(j == 0)||(j == N - 1) )/*判断下标为i的元素是否为二维数组中的周边元素*/

w[i][j]=0;

} 53.程序定义了N×N的二维数组,并在主函

数中赋值。请编写函数fun,函数的功能是:

求出数组周边元素的平均值并作为函数值

返回给主函数中的s。

例如:a数组中的值为

|0 1 2 7 9|

|1 9 7 4 5|

a= |2 3 8 3 1|

|4 5 6 8 2|

|5 9 1 4 1|

则返回主程序后s的输出结果为:3.375000。

注意:部分源程序存在文件prog.c中。

double fun ( int w[][N] )

{

int i,j,count=0;

double average,sum=0.0;

for(i=0;i

if(i==0 || i==(N-1))/*判断是否

为第一行或最后一行的元素*/

for(j=0;j

sum+=w[i][j];

count++;/*元素个数加

1*/

}/*对第一行或最后一行的

元素求和*/

else

{

sum+=w[i][0];/*对第i行第一

列的元素求和*/

sum+=w[i][N-1];/*对第i行最

后一列的元素求和*/

count+=2;

}/*对除首尾两行外的其他行

中每行的首尾两个元素求和*/

}

average=sum/count;/*计算数组周

边元素的平均值*/

return average;

}

54.编写一个函数fun,它的功能是:实现两

个字符串的连接(不使用库函数strcat)。

例如,分别输入下面两个字符串:

FirstString--

SecondString

程序输出:

FirstString--SecondString

注意:部分源程序存在文件prog.c中。

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

{

char *point1,*point2;

point1=p1;

point2=p2;

while(*point1!='\0') point1++;/*将

指针point1指向字符串末尾的结束符位置

上*/

while(*point2!='\0'){

*point1=*point2;/*将point2指向的

字符通过指针point1逐一连接在字符串p1

末尾*/

point1++;/*point1指针指向p1字符

串中的下一个字符*/

point2++;

}/*判断point2是否指向字符串末尾

的结束符位置上,如果是则连接完成退出循

环*/

*point1='\0';/*将point指针指向

'\0',以保证指针不越界*/

}

55.请编写函数fun,函数的功能是:实现

B=A+A',即把矩阵A加上A的转置,存放在矩

阵B中。计算结果在main函数中输出。

例如,输入下面的矩阵:其转置矩

阵为:

|1 2 3| |1

4 7|

|4 5 6| |2

5 8|

|7 8 9| |3

6 9|

程序输出:

|2 6 10|

|6 10 14|

|10 14 18|

注意:部分源程序存在文件prog.c中。

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

{int i,j;

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

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

b[i][j]=a[i][j]+a[j][i];/*按从行

到列的顺序,求得矩阵与其转置的和*/

}

56.程序定义了N×N的二维数组,并在主函

数中自动赋值。请编写函数fun(int

a[][N]),函数的功能是:使数组中第一行

元素中的值与倒数第一行元素中的值对调、第二行元素中的值与倒数第二行元素中的

值对调、……、其他依次类推。

例如:a数组中的值为

|11 17 4 10 29|

|4 18 18 22 14|

|5 5 1 27 1 |

a= |11 25 2 27 6 |

|21 24 2 3 22|

|21 24 2 3 22|

|11 25 2 27 6 |

则返回主程序后a数组中的值应为|5 5 1 27 1 |

|4 18 18 22 14|

|11 17 4 10 29|

注意:部分源程序存在文件prog.c中。void fun ( int a[][N] )

{

int i, j,k;

for (i=0;i

for (j=0;j

{ /*将a[i][j]与a[N-i-1][j]中的

元素进行对换*/

k=a[ i ][ j ];

a[ i ][ j ]=a[ N-i-1 ][ j ]; a[ N-i-1][ j ]=k;

}/*按先行后列的顺序,对数组a中的元素以中间行为对称线进行倒置*/

}

57.m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人数作为函数值返回。

例如,当score数组中的数据为:10、

20、30、40、50、60、70、80、90时,函数

返回的人数应该是4,below中的数据应为:

10 20 30 40。

注意:部分源程序存在文件prog.c中。

int fun(int score[], int m, int below[])

{

int total=0;/*用于计算m个学生的成

绩之和*/

int average=0;

int *p_below=below;/*用于存放成绩

低于平均分的学生的成绩*/

int i=0;

int j=0;/*用于计算成绩低于平均分

的学生的人数*/

for(i=0;i

total=total+score[i];

}/*求出m个学生成绩之和*/

average=total/m;

for(i=0;i

if(score[i]

*p_below=score[i];

p_below++;

j++;

}/*假如学生的成绩低于平均

分,则将成绩存放到p_below指针中并使指

针指向下一个学生成绩,同时计数变量j增

1*/

}

*p_below='\0';

return(j);

}

58.请编写函数fun,它的功能是:求出1到

1000之内能被7或11整除、但不能同时被7和

11整除的所有整数并将它们放在a所指的数

组中,通过n返回这些数的个数。

注意:部分源程序存在文件prog.c中。

void fun(int *n)

{

int i,count=0;*n=0;

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

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

i%11!=0))/*判断i是否能被7或11整除,且

又不能同时被7和11整除*/

aa[count++]=i;

*n=count;

}

59.程序定义了N×N的二维数组,并在主函

数中自动赋值。请编写函数fun(int

a[][N]),函数的功能是:使数组右上半三

角元素中的值全部置成0。

例如:a数组中的值为

|1 9 7|

a= |2 3 8|,则返回主程序后a数组中的

值应为

|4 5 6|

|0 0 0|

|2 0 0|

|4 5 0|

注意:部分源程序存在文件prog.c中。

void fun ( int a[][N] )

{

int i,j;

for (i=0;i

for (j=0;j

{

if (i<=j)/*判断当

前数组元素是否为二维数组中右上半三角

中的元素*/

a[i][ j] =0;

}

}

60.请编写一个函数void fun(char *tt,int

pp[]),统计在tt字符串中'a'到'z'26个字

母各自出现的次数,并依次放在pp所指数组

中。

例如,当输入字符串:abcdefgabcdeabc

后,程序的输出结果应该是:3 3 3 2 2 1 1

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

注意:部分源程序存在文件prog.c中。

void fun(char *tt,int pp[])

{ int i;

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

pp[i]=0; /*for()循环用于给数组pp[]

赋初值0*/

for(;*tt;tt++) /*for()循环用于控制在

字符串内从头到尾移动*/

if(*tt<='z'&&*tt>='a')

pp[*tt-97]++; /*统计字符串中各个

字母出现的次数*/

}

61.请编写一个函数void fun(int m,int

k,int xx[]),该函数的功能是:将大于整

数m且紧靠m的k个素数存入xx所指的数组

中。

例如,若输入17,5,则应输出:19,

23,29,31,37。

注意:部分源程序存在文件prog.c 中。

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

{

int i, j ,total=0;

int *p_xx=xx;

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

for(j=2;j

if(i<=j)/*判断i是否为素数,假如能整除i的整数为其自身j,则i为素数*/ {

*p_xx=i;

p_xx++;

total++;

if(total==k){

*p_xx='/0';

break;

}

}

}

}

62.已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数fun,函数的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。已给出函数的首部,请完成该函数。

注意:部分源程序存在文件prog.c中。

fun( STU a[], STU *s )

{

int i;

STU *m;

m=a;

for(i=1;i

比较a数组中的学生成绩,并使m指针始终指

向成绩低的学生记录*/

if (a[i].s

m=&a[i];

s[0].s=m[0].s;

strcpy(s[0].num,m[0].num);/*将m

指针中的学生学号复制给s数组中的学号变

量*/

}

63.请编写一个函数void fun(char a[],int

k,int n),其功能是:删除字符串规定下标

开始的n个字符。其中,a指向字符串,k中

存放指定的下标。

例如,字符串内容为:Hellollo World!,

k中的值为:5,n中的值为:3,则调用该函

数的结果为:Hello World!。

注意:部分源程序存在文件prog.c中。

void fun(char *a,int k,int n)

{int i;i=k;

while (a[i-1]!='\0')/*判断指定要删除

的字符是否存在或其后的全部字符是否已

全部前移*/

{ a[i]=a[i+n];

i=i+1;

}

}

64.请编写一个函数 int fun(int *s,int

*t,int *k),用来求出数组中值最大的元素

在数组中的下标并存放在k所指的存储单元

中,并且将最大值增添在数组的最后。形参

t所指存储单元中存放数组中数据的个数。

例如,数组中的数据如下:

876 675 896 101 301 401 980

431 451 777

则输出最大值的下标为:6,数组中的

内容为:

876 675 896 101 301 401 980

431 451 777 980

注意:部分源程序存在文件prog.c中。

void fun(int *s,int *t,int *k)

{ int i=0;

*k=0;

/*从前往后顺序比较s数组中的元素,并

将每次比较过程中较大的那个元素的下标

存放在指针k中*/

for (i=1;i<*t;i++)

if (s[*k]

s[*t]=s[*k];/*将找到的最大值添加在

数组的最后*/

*t=*t+1;/*数组长度增1*/

}

65.函数fun的功能是:将s所指字符串中下

标为奇数同时ASCII值为偶数的字符删除,s

中剩余字符形成的新串放在t所指的数组

中。

例如,若s所指字符串中的内容为:

“ABCDEFG12345”,其中字符B的ASCII码值为

偶数,所在元素的下标为奇数,因此必需删

除;而字符2的ASCII码值为偶数,而所在元

素的下标为偶数,因此不应当删除,其他依

次类推。最后t所指的数组中的内容应是:

“ACEG12345”。

注意:部分源程序存在文件prog.c中。

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

{

int i,slenth,n=0;

slenth=strlen(s); /*统计字符串s

中字符的个数*/

/*判断字符s[i]的下标是否为奇数且其

值的ASCII码值是否为偶数,如果是,则继

续下一个字符的判断,否则将字符s[i]复制

到t数组中*/

for(i=0;i

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

else

t[n++]=s[i];

}

t[n]='\0';

}

66.编写函数fun,它的功能是:根据以下公

式计算s,计算结果通过形指针sn传回;s通

过形参传入。

例如:若n的值为11时,输出的结果是:S=0.764601 N=11。注意:部分源程序存在文件prog.c中。

void fun(float *sn,int n)

{ int i;

float s=1;

*sn=0;

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

{ *sn=*sn+s*(float)(1.0/(2*i+1)); /*累加每一分式*/

s=-s; /*用来控制分式是加还是减*/

}

}

67.编写函数fun,它的功能是:根据以下公式求P的值,结果由函数值带回。m与n为两个正整数且要求m>n。

m!

P = ─────

n!(m-n)!

例如:m=12,n=8时,运行结果为

495.000000。

注意:部分源程序存在文件prog.c 中。

float fun(int m,int n)

{int i;

float s=1,f=1,h=1;

float x;

for (i=m;i>=1;i--) s=s*i; /*求出m的阶乘*/

for (i=n;i>=1;i--) f=f*i; /*求出n的阶乘*/

for (i=m-n;i>=1;i--) h=h*i;/*求出m-n 的阶乘*/

x=s/(f*h);

return (x);

}

68.函数fun的功能是:将s所指字符串中下标为偶数同时ASCII值也为偶数的字符删除,s中剩余的字符形成一个新串放在t所指的数组中。

例如,若s所指字符串的内容为"ABCDEFG12345",其中字符B的ASCII码值虽为偶数,但在数组中的下标为奇数,因此不能删除;而字符2的ASCII码值为偶数,在数组中的下标为偶数,因此应当删除,其他依次类推。最后t所指的数组中的内容应是

"ABCDEFG135"。

注意:部分源程序存在文件prog.c中。

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

{

int i,slenth,n=0;

slenth=strlen(s); /*统计字符串s

中字符的个数*/

/*判断字符s[i]的下标和其值的ASCII

码值是否都为偶数,如果是,则继续下一个

字符的判断,否则将字符s[i]复制到t数组

中*/

for(i=0;i

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

else

t[n++]=s[i];

}

t[n]='\0';

}

69.编写函数fun,它的功能是:利用以下所

示的简单迭代方法求方程:cos(x)-x=0的一

个实根。Xn+1=cos(Xn)迭代步骤如下:

(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。

注意:部分源程序存在文件prog.c

中。

float fun()

{double x1,x0;

x1=0.0;

x0=x1;

x1=cos(x0);

while (fabs(x0-x1)>0.000001)/*假如双

精度型(x0-x1)的绝对值大于0.000001,

则继续循环,否则退出循环*/

{x0=x1;x1=cos(x0);}

return((float)x0);

}

70.函数fun的功能是:将s所指字符串中

ASCII值为偶数的字符删除,串中剩余字符

形成一个新串放在t所指的数组中。

例如,若s所指字符串中的内容为:

“ABCDEFG12345”,其中字符B的ASCII码值为

偶数、…、字符2的ASCII码值为偶数、…都

应当删除,其他依次类推。最后t所指的数

组中的内容是:“ACEG135”。

注意:部分源程序存在文件prog.c

中。

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

{

int i,slenth,n=0;

slenth=strlen(s); /*统计字符串s

中字符的个数*/

/*判断字符s[i]其值的ASCII码值是否

为偶数,如果是,则继续下一个字符的判断,

否则将字符s[i]复制到t数组中*/

for(i=0;i

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

t[n++]=s[i];

t[n]='\0';

}

71.编写函数fun,它的功能是:求n以内(不

包括n)同时能被3与7整除的所有自然数之

和的平方根s,并作为函数值返回。

例如若n为1000时,函数值应为:

s=153.909064。

注意:部分源程序存在文件prog.c中。

double fun(int n)

{ int i,s=0;

for (i=1;i

/*判断i是否能被3与7同时整除*/

if (i%3==0 && i%7==0) s=s+i;

return (sqrt(s));

}

72.函数fun的功能是:将s所指字符串中

ASCII值为奇数的字符删除,串中剩余字符

形成一个新串放在t所指的数组中。

例如,若s所指字符串中的内容为

"ABCDEFG12345",其中字符A的ASCII码值为

奇数、…、字符1的ASCII码值也为奇数、…

都应当删除,其他依次类推。最后t所指的

数组中的内容应是:"BDF24"。

注意:部分源程序存在文件prog.c

中。

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

{

int i,slenth,n=0;

slenth=strlen(s); /*统计字符串s

中字符的个数*/

/*判断字符s[i]其值的ASCII码值是否

为奇数,如果是,则继续下一个字符的判断,

否则将字符s[i]复制到t数组中*/

for(i=0;i

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

t[n++]=s[i];

t[n]='\0';

73.编写函数fun,它的功能是:求Fibonacci

数列中大于t的最小的一个数,结果由函数

返回。其中Fibonacci数列F(n)的定义为:

F(0)=0,F(1)=1

F(n)=F(n-1)+F(n-2)

例如:当t=1000时,函数值为:1597。

注意:部分源程序存在文件prog.c中。

int fun( int s)

{

int x1=0,x2=1,m=0;

/*假如当前项的值小于指定值s,但是下一

项的值又大于指定值s,即下一项值即为大于s的最小的一个数*/

while (s>m)

{

m=x1+x2;

x1=x2;

x2=m;

}

return m;

}

74.函数fun的功能是:将s所指字符串中下标为奇数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。

例如,当s所指字符串为:“ABCDEFGHIJK”时,t所指的数组的内容应是:“ACEGIK”。

注意:部分源程序存在文件prog.c中。void fun(char *s, char t[])

{

int i,slenth,n=0;

slenth=strlen(s); /*统计字符串s 中字符的个数*/

/*将字符串s中全部下标为偶数的字符复制到数组t中*/

for(i=0;i

t[n++]=s[i];

t[n]='\0';

}

75.编写函数fun,它的功能是:计算正整数n的所有因子(1和n除外)之和作为函数值返回。

例如:n=120时,函数值为239。

注意:部分源程序存在文件prog.c中。int fun(int n)

{ int i,s=0;

/*能整除n的自然数即称为因子*/

for (i=2;i

if (n%i==0) s=s+i;

return (s);

}

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

例如,若s所指字符串中的内容为:“ABCDEFG12345”,其中字符A的ASCII码值虽为奇数,但所在元素的下标为偶数,因此必需删除;而字符1的ASCII码值为奇数,所在数组中的下标也为奇数,因此不应当删除,其他依此类推。最后t所指的数组中的内容应是:“135”。

注意:部分源程序存在文件prog.c中。

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

{

int i,slenth,n=0;

slenth=strlen(s); /*统计字符串s中

字符的个数*/

/*将字符串s中所有下标和ASCII值同时

为奇数的字符复制到数组t中*/

for(i=1;i

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

t[n++]=s[i];

t[n]='\0';/*在数组t最后添加字符串

结束符*/

}

77.编写函数fun,它的功能是计算:

s=(In(1)+In(2)+In(3)+……+In(m))^0.5,

s作为函数值返回。在C语言中可调用log(n)

函数求In(n)。log函数的引用说明是:

double log(double x)。

例如,若m的值为:20,fun函数值为:

6.506583。

注意:部分源程序存在文件prog.c中。

double fun( int m)

{ int i;

double s=0;

for (i=1;i<=m;i++) /*求In(1)~In(m)

的和*/

s=s+log(i);

s=sqrt(s); /*求s的平方根*/

return (s);

}

78.函数fun的功能是:将s所指字符串除了

下标为偶数、同时ASCII值也为偶数的字符

外,其余的全部删除;串中剩余字符所形成

的一个新串放在t所指的数组中。

例如,若s所指字符串中的内容为:

"ABCDEFG123456",其中字符B的ASCII码值

为偶数,但在数组中的下标为奇数,因此也

应当删除;而字符2的ASCII码值为偶数,所

在数组中的下标也为偶数,因此不应当删

除,其他依此类推。最后t所指的数组中的

内容应是:"246"。

注意:部分源程序存在文件prog.c

中。

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

{

int i,slenth,n=0;

slenth=strlen(s); /*统计字符串s

中字符的个数*/

/*将字符串s中所有下标和ASCII值同时

为偶数的字符复制到数组t中*/

for(i=0;i

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

t[n++]=s[i];

t[n]='\0';/*在数组t最后添加字符串

结束符*/

}

79.请编一个函数fun,函数的功能是使实型

数保留2位小数,并对第三位进行四舍五入

(规定实型数为正数)。

例如:实型数为 1234.567,则函数返

回 1234.570000;

实型数为 1234.564,则函数返

回 1234.560000。

注意: 部分源程序存在文件PROG1.C文

件中。

float fun ( float h )

{

return (long)(h*100+0.5)/100.0;

/*将该数乘以10的n次方,然后将该数加上

0.5,对其取整,然后再除以10的n次方*/

}

80.请编写函数fun,它的功能是:求出能整

除形参x且不是偶数的各整数,并按从小到

大的顺序放在pp所指的数组中,这些除数的

个数通过形参n返回。

例如,若x中的值为:35,则有4个数符

合要求,它们是:1,5,7,35。

注意:部分源程序在文件PROG1.C文件

中。

void fun ( int x, int pp[], int *n )

{ int i,k,j = 0 ;

for(i=1;i<=x;i+=2)

/*for()语句用来控制数据为基数*/

{if((x%i)==0) pp[j++] =i;

/*用于判断能否被x整除*/

*n=j ;}

/*通过指针返回符合条件除数的个数*/

for(i=0;i

for(k=i+1;k

if(pp[i]>pp[k])

{x=pp[i]; pp[i]=pp[j];

pp[j]=x;} /*对进行符合条件的整数进行从小到大的排序*/

}

81.请编写一个函数fun,它的功能是:删除字符串中的数字字符。例如输入字符串:48CTYP9E6,则输出:"CTYPE"。

注意:部分源程序存在文件prog.c中。void fun (char *s)

{

int i,j=0;

char str[100],*p;

p=s;

while(*p!='\0'){

if(*p<'0' || *p>'9') /*假如当前指针p所指的字符不为数字字符,则将指针p所指的字符复制到str数组中*/

str[j++]=*p;

p++; /*指针p指向字符串s中的下一个字符*/

}

str[j]='\0';

p=s;

for(i=0;i

p[i]=str[i];

p[i]='\0';

}

82.请编写一个函数fun,它的功能是:求出一个2×M整型二维数组中最大元素的值,并将此值返回调用函数。

注意:部分源程序存在文件prog.c中。fun (int a[][M])

{

int i,j,base;

base=a[0][0]; /*将二维数组的第一个元素赋给变量base,该变量是存放数组中最大元素的值*/

for(i=0;i<2;i++) /*设置循环变量*/

for(j=0;j

if(base

base=a[i][j]; /*二维数组中最大元素的值*/

} return base; /*返回最大值*/

}

83.规定输入的字符串中只包含字母和*号。

请编写函数fun,它的功能是:除了尾部连

续的*号之外,将字符串中其它*号全部删

除。形参p已指向字符串中最后一个字母。

在编写函数时,不得使用C语言提供的字符

串函数。

例如,字符串中的内容为:

****A*BC*DEF*G******,删除后,字符串中

的内容应当是:ABCDEFG*******。

注意:部分源程序存在文件prog.c中。

void fun(char *a,char *p)

{ char b[81],*k;

int i=0,j=0;

k=a;

while (k<=p)

if (*k!='*') {b[i]=*k;i++;k++;}

else k++;

while (*(++p))

{b[i]=*p;i++;}

b[i]='\0'; i=0;

while ( b[i]!='\0')

{a[j]=b[i];j++;i++;}

a[j]='\0';

}

84.请编写一个函数fun,它的功能是:将ss

所指字符串中所有下标为奇数位置上的字

母转换成大写(若该位置上不是字母,则不

转换)。

例如,若输入“abc4EFG”,则应输出

“aBc4EFG”。

注意:部分源程序存在文件prog.c中。

void fun ( char *ss )

{

int i,n=0;

char *p;

p=ss;

while(*p++!='\0') /*判断是否到了

字符串的末尾*/

n++;

for(i=1;i

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

/*判断该字符是否为小写字母*/

ss[i]=ss[i]-'a'+'A';

/*若上述条件成立,则将其转换为大写字母

*/

}

85.编写函数fun,它的功能是:计算并输出

下列级数和:

例如,当n=10时,函数值为:0.909091。

注意:部分源程序存在文件prog.c中。

double fun(int n)

{ int i;

double s=0;

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

s=s+1.0/(i*(i+1)); /*累加各分式

的值*/

return(s);

}

86.编写函数fun,它的功能是计算下列级数

和,和值由函数值返回。

例如,当n=10,x=0.3时,函数值为

1.349859。

注意:部分源程序存在文件prog.c中。

double fun(double x,int n)

{ int i;

double f=1.0,h=x;

double s=1;

s=s+h/f; /*求公式中1、2两项的

和(即1+x)*/

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

{ f=f*i; /*求公式中每一项分母

的阶乘值*/

h=h*x; /*求公式中每一项分

子的乘方值*/

s=s+h/f;

}

return (s);

}

87.假定输入的字符串中只包含字母和*号。

请编写函数fun,它的功能是:将字符串尾

部的*号全部删除,前面和中间的*号不删

除。

例如,字符串中的内容为:

****A*BC*DEF*G*******,删除后,字符串

中的内容应当是:****A*BC*DEF*G。在编写

函数时,不得使用C语言提供的字符串函数。

注意:部分源程序存在文件prog.c中。

void fun(char *a)

{char b[81];

int i=0,j,s=0;

j=strlen(a)-1;

while ((j!=-1) && (a[j]=='*')) j--;

/*查找出字符串数组a中尾部第一个不为

"*"的字符*/

while (j!=-1)

{b[i]=a[j];j--;i++;} /*将字符

串a中尾部不为"*"开始的所有字符全部复

制到字符串b中*/

b[i]='\0';j=0;i=0;

while (b[i++]!='\0')

s++;

i=0;

while (b[i]!='\0')

{a[j+s]=b[i];j++;i++;} /*将字符串b中的所有字符复制到a字符串中覆盖原串

*/

a[s]='\0';

}

88.假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:只删除字符串前导和尾部的*号,串中字母之间的*号都不删除。形参n给出了字符串的长度,形参h 给出了字符串中前导*号的个数,形参e给出了字符串中最后*号的个数。在编写函数时,不得使用C语言提供的字符串函。

例如,字符串中的内容为:

****A*BC*DEF*G******,删除后,字符串中的内容应当是:A*BC*DEF*G。

void fun(char *a,int n,int h,int e) { char b[81],*c,*d;

int i=0,j=0;

c=a;d=a;

c=c+h;d=d+n-e-1;

while (c<=d)

{b[i]=*c;i++;c++;} /*将从第一个

非*字符开始到串尾连续*之前的非*字符追加在数组b中*/

b[i]='\0'; i=0;

while (b[i])

{a[j]=b[i];j++;i++;} /*将字符串b中的所有字符复制到a字符串中覆盖原串*/

a[j]='\0';

}

89.假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串中的前导*号全部移到字符串的尾部。函数fun 中给出的语句仅供参考。

例如,字符串中的内容为:

*******A*BC*DEF*G****,移动后,字符串中的内容应当是:A*BC*DEF*G***********。在编写函数时,不得使用C语言提供的字符串函数。

注意:部分源程序存在文件prog.c中。void fun(char *a)

{ char b[81];

int i=0,j=0,s=0,k;

while (a[i]=='*')

{i++;s++;} /*统计原串串首

连续星号的个数*/

while (a[i])

{b[j]=a[i];j++;i++;}

for (k=0;k

{b[j]='*';j++;}

b[j]='\0';

i=0;j=0;

while (b[j])

{a[i]=b[j];i++;j++;} }

90.函数fun的功能是:将a、b中的两个两位

正整数合并形成一个新的整数放在c中。合

并的方式是:将a中的十位和个位数依次放

在变量c的百位和个位上,b中的十位和个位

数依次放在变量c的千位和十位上。

例如,当a=45,b=12。调用该函数后,

c=1425。

注意:部分源程序存在文件prog.c中。

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

{

int a_up,a_low,b_up,b_low;

a_up=a/10; /*求正整数a的十位数

*/

a_low=a%10; /*求正整数a的个位数

*/

b_up=b/10; /*求正整数b的十位数

*/

b_low=b%10; /*求正整数b的个位数

*/

*c=b_up*1000+a_up*100+b_low*10+a_low;

/*将a数的十位和个位数依次放在c数的百

位和个位上,b数的十位和个位数依次放在c

数的千位和十位上*/

}

91.N名学生的成绩已在主函数中放入一个

带头节点的链表结构中,h指向链表的头节

点。请编写函数fun,它的功能是:找出学

生的最高分,由函数值返回。

注意:部分源程序存在文件prog.c中。

ouble fun(STREC *h)

{STREC *c;

double max;

c=h->next;

max=c->s; /*假定首结点为最大值*/

while (c->next!=0)

{c=c->next; /*c后移一个结点*/

if (maxs) max=c->s; /*找出最大值

并将其赋给变量max*/

}

return max; /*返回最大值*/

}

92.程序定义了N×N的二维数组,并在主函

数中自动赋值。请编写函数fun,函数的功

能是:使数组右上三角元素中的值乘以m。

例如:若m的值为2,a 数组中的值为

| 1 9 7 |

| 2 18 14|

a = | 2 3 8 | 则返回主程序后a数组中

的值应为 | 2 6 16|

| 4 5 6 |

| 4 5 12|

void fun( int a[][N], int m)

{ int i,j;

for(i=0; i

制二维数组行的变化*/

for(j=N-1; j>=i; j--)

a[i][j]*=m; /*对数组上半三角

元素中的值全部乘以m*/

}

93.请编写一个函数,用来删除字符串中的

所有空格。

例如,输入"asd af aa z67",则输出

为 "asdafaaz67"。

void fun(char *str)

{int i,j;

for(i=0;*(str+i);i++)

if(*(str+i)==32)

{ for(j=i+1;*(str+j);j++)

*(str+j-1)=*(str+j); /*删除空格

*/

*(str+j-1)=0; /*以字符串结束标

志"\0"结束循环*/

i=0;

}

}

94.请编写函数fun,函数的功能是:将放在

字符串数组中的M个字符串(每串的长度不

超过N),按顺序合并组成一个新的字符串。

例如,字符串数组中的M个字符串为:

AAAA

BBBBBBB

CC

则合并后的字符串的内容应是:

AAAABBBBBBBCC。

提示:strcat(a,b)的功能是将字符串b

复制到字符串a的串尾上,成为一个新串。

注意:部分源程序存在文件prog.c中。

void fun(char a[M][N], char *b)

{int i,j,d=0; /*定义整型

变理d用于控制字符数组*b的下标变化*/

for(i=0;i<100;i++)b[i]=0; /*实现数组

的初始化*/

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

for(j=0;*(a[i]+j);j++)

{

*(b+d)=*(a[i]+j);

d++;

}

}

95.请编写函数fun,函数的功能是:移动一

维数组中的内容;若数组中有n个整数,要

求把下标从0到p(含p,p小于等于n-1)的

数组元素平移到数组的最后。

例如,一维数组中的原始内容为:

1,2,3,4,5,6,7,8,9,10;p的值为3。移动后,一维数组中的内容应为:

5,6,7,8,9,10,1,2,3,4。

void fun(int *w, int p, int n)

{int x,j,ch;

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

{ch=w[0];

for(j=1;j

w[j-1]=w[j];

}

w[n-1]=ch; /*将0到p个数组元素逐一赋给数组w[n-1]*/

}

}

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

例如,字符串中原有的内容为:ABCDEFGHIJK,m的值为3,则移动后字符串中的内容应该是:DEFGHIJKABC。

void fun(char *w, int m)

{int i=0,x,j;

char ch;

for(j=0;w[j];j++)i++;

for(x=0;x

{ch=w[0];

for(j=1;j

w[j-1]=w[j];

}

w[i-1]=ch;

}

}

97. 请编写函数fun,函数的功能是:将M行N列的二维数组中的字符数据按列的顺序依次放到一个字符串中。

例如,二维数组中的数据为:

W W W W

S S S S

H H H H

则字符串中的内容应是:WSHWSHWSHWSH。

void fun(char (*s)[N], char *b)

{int x,y; /*定义两个整型变量*/ for(x=0;x<100;x++) /*通过for循环开辟

一个100个字节的存储空间,并将其中各元

素的初值赋为0*/

*(b+x)=0;

for(x=0;x

循环,按列的顺序将第1到3行的数据依次存

放到一个字符串中*/

for(y=0;y

b[x*M+y]=*(s[y]+x);

}

98.请编写函数fun,函数的功能是:删去一

维数组中所有相同的数,使之只剩一个。数

组中的数已按由小到大的顺序排列,函数返

回删除后数组中数据的个数。

例如,一维数组中的数据是:

2 2 2

3

4 4

5

6 6 6 6

7 7

8

9 9 10

10 10。删除后数组中的内容应该是:2 3 4

5 6 7 8 9 10。

int fun(int a[], int n)

{int i,j,x; /*定义三个整型变量*/

for(i=0;i

for(j=i+1;j

if(a[j]==a[i])

{for(x=j+1;x

a[x-1]=a[x];

n--;

j--;

}

return(n); /*返回结果*/

}

99.请编写函数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;

for(i=0;i

每一个元素*/

b[i]=0;

for(i=0;i

b[*(a+i)/10>10?10:*(a+i)/10]++;

}

100.请编写函数fun,函数的功能是:统计

一行字符串中单词的个数作为函数值返回。

一行字符串在主函数中输入,规定所有单词

由小写字母组成,单词之间由若干个空格隔

开,一行的开始没有空格。

注意:部分源程序存在文件prog.c中。

int fun( char *s)

{int i=1,j=0;/*i用来记录是否遇到过了空

格,j用来记录单词数*/

while(*s){

if((i==1) && (*s!=32))

{j++;i=0;} /*当i==1且当

前s所指向的是字符,则j自增加1,同时将i

设为0*/

if(*s==32)

i=1; /*用i来判断是否遇

到了空格,假如遇到了空格则i=1*/

s++; }

return j; /*返回统计结果*/

}

101.请编写函数fun,它的功能是:求出ss

所指字符串中指定字符的个数,并返回此

值。

例如,若输入字符串:123412132,输

入字符为:1,则输出:3。

注意:部分源程序在文件prog.c中。

int fun(char *ss,char c)

{

int times=0,i,len;

len=strlen(ss);

for(i=0;i

if (ss[i]==c) times++;

} return(times);

}

102.请编写一个函数void fun (char

a[],char b[],int n),其功能是:删除一

个字符串中指定下标的字符。其中,a指向

原字符串,删除指定字符后的字符串存放在

b所指的数组中,n中存放指定的下标。

例如,输入一个字符串:World,然后

输入3,则调用该函数后的结果为:Word。

void fun (char a[], char b[], int n)

{

int i=0,j=0;

for( i=0,j=0; i

环,在原字符串a[]中定位到指定位置*/

if (i!=n) { b[j]=a[i];

j++;

}

}

}

103.学生的记录由学号和成绩组成,N名学

生的数据已在主函数中放入结构体数组s

中,请编写函数fun,它的功能是:把低于

平均分的学生数据放在b所指的数组中,低

于平均分的学生人数通过形参n传回,平均

分通过函数值返回。注意:部分源程序存在

文件prog.c中。

double fun(STREC *a,STREC *b,int *n)

{ int i,j;

double aver=0;

*n=0;

for (i=0;i

aver=aver+a[i].s; /*计算总

分*/

aver=aver/N; /*计算平

均分*/

for (i=0;i

if (a[i].s

{ b[*n].s=a[i].s;

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

b[*n].num[j]=a[i].num[j]; *n=*n+1; /*统计低于平均分的学生人数*/

}

return (aver); /*返回低于平均分的学生人数*/

}

104.假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:使字符串中尾部的*号不得多于n个;若多于n个,则删除多余的*号;若少于或等于n个,则什么也不做,字符串中间和前面的*号不删除。

例如,字符串中的内容为:

****A*BC*DEF*G*******,若n的值为4,删除后,字符串中的内容应当是:

****A*BC*DEF*G****;若n的值为7,则字符串中的内容仍为:****A*BC*DEF*G*******。n的值在主函数中输入。在编写函数时,不得使用C语言提供的字符串函数。

void fun(char *a,int n)

{

char b[81];

int i=0,j=0,s=0,k,t=0;

while (a[i]) {t++;i++;}

i--;

while (a[i]=='*') {s++;i--;} /*统计串尾连续字符的个数*/

if (s>n)

{ for (k=0;k

{ b[j]='*';j++; }

while (i!=-1)

{ b[j]=a[i];j++;i--; }

b[j]='\0'; i=0;j=j-1;

while (j!=-1)

{ a[i]=b[j];i++;j--; }

a[i]='\0';

}

}

方法二:

void fun(char *a,int n)

{

int i=0,j=0,s=0,t=0,len=0;

while (a[len]) {t++;len++;} /*统计字符串中字符的个数*/

i=len-1;

while (a[i]=='*') {s++;i--;} /*统

计串尾连续字符的个数s*/

if (s>n)

a[len-s+n]='\0'; }

}

105.学生的记录由学号和成绩组成,N名学

生的数据已在主函数中放入结构体数组s

中,请编写函数fun,它的功能是:把分数

最高的学生数据放在b所指的数组中,注意:分数最高的学生可能不止一个,函数返回分

数最高的学生人数。

int fun(STREC *a,STREC *b)

{

int i,j=0,max,k,f=0;

max=(*a).s;

for (i=1;i

if (a[i].s>max) max=a[i].s; for (i=0;i

if (a[i].s==max)

{ f++; /*统计分数最高

的学生人数*/

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

b[j].num[k]=a[i].num[k];

b[j].s=a[i].s;

j++;

}

return(f); /*返回分数最高的学

生人数*/

}

C语言程序设计模拟试题1(附答案)

《C语言程序设计》模拟试卷一 一、单项选择题(每题2分,共30分) 1、下列有关C语言的叙述中错误的是()。 A) C语句必须以分号结束 B) 任何一个C程序中有且只有一个主函数 C) 复合语句在语法上可被看作一条语句 D) C程序中对数据的任何操作都可由运算符实现 2、以下不能定义为用户标识符的是()。 A) MAIN B) _HJ C) 2ong D) LINE1 3、下列符号中用来表示C语言中的回车换行的是()。 A) \r B) \n C) \b D) \t 4、如有如下定义:int a=1,则语句printf(“%d,%d”, a, ++a);的运行结果为()。 A) 1, 1 B) 1, 2 C) 2, 2 D) 2, 1 5、已知ch为字符型变量,下面表达式中正确的是()。 A) ch=’\xff ’B) ch=’\ff ’C) ch=’ ff ’D) ch=” ff ” 6、以下能正确定义一维数组的是()。 A) int a[5]={0,1,2,3,4,5}; B) int a[5]=”012345”; C) char a[ ]=”012345”; D) char a[5]={0,1,2,3,4,5}; 7、以下语句中能正确定义变量并赋初值的是()。 A) char c=65; B) float f=f+1.1; C) double x=12.3e3.6; D) int m=n=2.0; 8、在执行下列程序时输入:1357924,则程序的运行结果为()。 main( ) { int x, y; scanf(“%2d%2d”,&x,&y); printf(“%2d”,x*y); } A) 13 B) 1357 C) 74 D) 741 9、执行下列程序段后输出的结果是()。 x = 9; while (x > 7)

C语言程序设计模拟试题A附答案

《C语言程序设计》模拟试卷A 一、单项选择题(每题2分,共20分) 1、下列有关C语言的叙述中错误的就是(D)。 A) C语句必须以分号结束 B) 任何一个C程序中有且只有一个主函数 C) 复合语句在语法上可被瞧作一条语句 D) C程序中对数据的任何操作都可由运算符实现 2、以下不能定义为用户标识符的就是(C)。 A) MAIN B) _HJ C) 2ong D) LINE1 3、以下能正确定义一维数组的就是(C)。 A) int a[5]={0,1,2,3,4,5}; B) int a[5]=”012345”; C) char a[ ]=”012345”;D) char a[5]={0,1,2,3,4,5}; 4、执行下列程序段后输出的结果就是(C)。 x = 9; while (x > 7) { printf(“*”); x- -; } A) **** B) *** C) ** D) * 5、设char str1[10] = “ABCDE”, str2[10] = “xyz”; 则执行语句 printf(“%d”, strlen(strcpy(str1, str2))); 后的输出结果就是(D)。 解析: strcpy(str1,str2); 后,str1[] 里就是"XYZ", Z 后面有字符串结束符 strcpy(str1,str2); 执行后,函数返回的就是str1, 因为str1[] 里就是新值"XYZ", 而 strlen(strcpy(str1,str2)) 就就是strlen(str1的新值),所以得3。 strlen 统计到字符串结束符以前,即,不计入字符串结束符。 A) 9 B) 8 C) 5 D) 3 6、若用数组名作为函数调用的实参,则传递给形参的就是(A)。

C语言程序设计期末考试试题(含答案)

C语言程序设计 期末考试试题及其答案 一、单项选择题(本大题共20题,每题2 分,共40分) 1、以下不是C语言的特点的是( ) A、C语言简洁、紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件进行操作 D、C语言移植性好 2、以下不正确的C语言标识符是( ) A、ABC B、abc C、a_bc D、ab.c 3、一个C语言程序是由( ) A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是( ) A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性 5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为( ) A、int B、float C、double D、不确定 6、在C语言中,char型数据在内存中的存储形式是( ) A、补码 B、反码 C、源码 D、ASCII码 7、有如下程序,输入数据:12345M678<cR>后(表示回车),x的值是( ) 。 #include main(){ int x; float y; scanf("%3d%f",&x,&y); } A、12345 B、123 C、45 D、345 8、若有以下定义int a,b; float x,则正确的赋值语句是( ) A、a=1,b=2 B、b++; C、a=b=5 D、b=int(x); 9、以下程序的执行结果是( )

#include { int i=10,j=10; printf("%d,%d\n",++i,j--); } A、11,10 B、9,10 C、11,9 D、10,9 10、巳知字母A的ASCII码是65,以下程序的执行结果是( ) #include main() { char c1='A',c2='Y'; printf("%d,%d\n",c1,c2); A、A,Y B、65,65 C、65,90 D、65,89 11、下列运算符中优先级最高的是( ) A、< B、十 C、% D、!= 12、设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) 13、判断char型变量cl是否为小写字母的正确表达式为( ) A、’a’<=c1<=f’z’ B、(c1>=a)&&(c1<=z) C、(‘a’>=c1) (‘z’<=c1) D、(c1>=’a’)&&(c1<=’z’) 14、字符串"a"在内存中占据的字节个数为( ) A、0 B、 1 C、 2 D、 3 15、下面有关for循环的正确描述是( ) A、for循环只能用于循环次数已经确定的情况 B、for循环是先执行循环体语句,后判定表达式 C、在for循环中,不能用break语句跳出循环体 D、for循环体语句中,可以包含多条语句,但要用花括号括起来 16、下面程序的运行结果是( ) #include main() {int num=0; while(num<=2) {num++; printf(“%d ,num); } } A、 1 B、 1 2 C、 1 2 3

C语言程序设计模拟试题2(附答案)

《C语言程序设计》模拟试卷二 一、填空题。(每空2分,共30分) 1.设有变量说明语句 int x=1,y=2; 则执行下述printf语句的输出结果是___1.000000___ _____。 printf("%f\n",1.0+x/y); 2.执行下述程序 #include main() { int x,y; scanf("%2d%*2s%1d",&x,&y); printf("%d\n",x+y); } 若从键盘输入 12345671 则程序的输出结果是__17______。 3.以下程序的功能是:从键盘上输入若干名学生的成绩(百分制,可带小数,以输入负数或0为结束标志),统计并输出最高成绩和最低成绩。请填空。 #include main() {

float x,amax,amin; scanf("%f",&x); amax=x; amin=x; while ( X>0&&X<=100 ) { if (x>amax) amax=x; else if (x

_k++ _________; d=1.0/(k*(k+1)); } while (k<=n); printf("%f\n",s); 5.执行下述程序的输出结果是_-3 -4 0 4 4 3___ ____。 #inclued main() { int a[6],i; for (i=0;i<6;i++) { a[i]=9*(i-2+4*(i>3))%5; printf("%3d",a[i]); } printf("\n"); } 6.执行下述程序时的输出结果是____6_____ ________。 #include main() { int a[]={2,4,6,},*ptr=&a[0],x=8,y,z; for (y=0;y<3;y++) z=(*(ptr+y)

C语言程序设计模拟试题1

C语言程序设计模拟试题. 一、填空题. 1. C语言程序的三种基本结构是顺序结构,选择结构,循环结构。 2.if语句控制表达式只有其值为非0表示逻辑值“真”,其值为0表示逻辑值“假”。 3.说明语句:int b[10]; 定义了数组b有10个整型元素,这些数组元素的下标是从0开始,最大为9。 4. 有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]=0,a[2][1]=6. 5. 设x,y,z均为int 型变量,C语言描述”x或y中有一个小于z”的表达式是x

8. 在C语言中,十进制数30的八进制表示形式是036 ,十六进制表示形式是0x1e 9. C程序是由函数组成的。一个C程序由一个main()函数和若干个子函数构成。函数的构成可分为两部分:函数说明(或函数头) 和函数体。 10.标识符是指程序中的符号常量、变量、函数等对象的名称。在C语言中,标识符只能由字母、数字和下划线组成,且第一个字符必须为字母或下划线。 11.在C语言中整型常量有十进制、八进制和十进制三种表示方法。实型常量有小数形式和指数两种表示方法。 12.C语言中语句的作用是向计算机系统发出操作命令,从而完成一定的操作任务。C语句可以分为:表达式语句、函数调用语句、控制语句、复合语句和空语句等五种类型。 二、单项选择题) 1.一个C语言的执行是从 A (A)本程序的main函数开始,到main函数结束 (B)本程序文件的第一个函数开始,到本程序文件的 最后一个函数结束

C语言程序设计竞赛模拟试题

1、编写程序,从键盘上连续输入若干字符,直到回车换行符结束。统计并输出所输入的空格、 大写字母、小写字母,以及其他字符(不含回车换行符)的个数。 #include "" main() { char ch=' '; int i=0, j=0, k=0, m= ?1; do { if (ch>='a' && ch<='z') i++; else if (ch>='A' && ch<='Z') j++; else if (ch == ' ') m++; else k++; }while((ch=getchar())!='\n'); printf ("small letter = %d, capital letter = %d\n", i, j); printf ("space = %d, other = %d\n", m, k); } 编写程序,求100~999之间所有的水仙花数。所谓“水仙花数”,即是一个三位数,它个位、十位、百位数字的立方和,恰好等于该数本身。 #include "" main() { int i, j = 1; int nf, ns, nt; for (i =100; i<=999; i++) { nf = i%10; ns = i/10%10; nt = i/100; nf = nf * nf * nf; ns = ns * ns * ns; nt = nt * nt * nt; if ((nf + ns + nt) == i) { printf ("The %d's number is %d\n", j, i); j++; } } 编写程序,求1-1/2+2/3-3/4+4/5-5/6+6/7….-99/100= 4、编写程序,随机产生1-35个不重复的数,并打印结果。

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

第一章基础知识 一.填空 1. 每个C 程序都必须有且仅有一个__________ 函数。 2. C语言程序开发到执行通常要经过6个阶段即编辑、预处理、___________ 、链接、加载 和执行。 3. 软件是程序,以及________ 、使用和维护所需要的所有文档。 4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________ ”。 5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和_________ 两大类 。 6. C 语言是由_______ 组成的。 7. C 语言的函数可分为主函数main 、标准库函数和____________ 。 8. 一个函数是由两部分组成的,即:___________ 和函数体。 9. 编译是将C语言所编写的源程序___________ 成机器代码,也称为建立目标代码程序的过程。 10. 程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作 的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为。 11. 机器语言是以___________ 形式表示的机器基本指令的集合,是计算机系统唯一不需要翻 译可以直接识别和执行的程序设计语言。 12. 与机器语言相比,使用汇编语言来编写程序可以用____________ 来表示指令的操作码和操作对 象,也可以用标号和符号来代替地址、常量和变量。 13. 在编译程序之前,凡以_____ 开头的代码行都先由预处理程序预处理。 13. C 程序的执行均是由执行_________ 开始。 15. 函数体即为包含在{2内的部分。它分为 __________ 和为完成功能任务由若干个C语句组成的执行部分。 16. C 语言程序中一条简单语句是以___________ 字符作为结束符的。 17. C 语言是结构化、 ________ 的程序设计语言。 18. 由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“_______ 程序” ,将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。 19. 用高级语言编写的程序需翻译成计算机硬件所能识别的机器语言程序方可执行。所以说,用高级语言进行程序设计,其编程效率高,方便易用,但_______ 没有低级语言高。 20. 第一个系统体现结构化程序设计思想的教学工具语言是 _______ 语言。 解答: 1. main()

C语言编程基础考试试题

C语言编程基础考试试题 文档名称文档密级 C语言编程基础考试 [考前说明]本题目中不考虑头文件引用问题(假定已经包含正确的头文件),C 语言的标 准函数都可用;如果不特别说明, 假定程序运行环境为:操作系统Windows 2000, VC6.0编译环境,缺省为四字节对齐, X86(80586)CPU处理器(32位小字节序处理器). 一、单选题 1、给出以下定义: char acX[ ]= "abcdefg"; char acY[ ]= {'a','b','c','d','e','f','g'}; 则正确的叙述为( ) A) 数组acX和数组acY等价 B) 数组acX和数组acY的长度相同 C) 数组acX的长度大于数组acY的长度 D) 数组acX的长度小于数组Y的长度 2、 void example(char acHello[]) { printf("%d", sizeof(acHello)); return; } void main()

{ char acHello[] = "hello"; example(acHello); return; } 的输出是( ) A 4 B 5 C 6 D不确定 3、以下叙述中不正确的是( ) A) 在不同的函数中可以使用相同名字的变量 B) 函数中的形式参数是在栈中保存 C) 在一个函数内定义的变量只在本函数范围内有效 D) 在一个函数内的复合语句中定义的变量在本函数范围内有效(复合语句指函数 中的成对括号构成的代码) 4、设有如下定义: unsigned long pulArray[] = {6, 7, 8, 9, 10}; unsigned long *pulPtr; 则下列程序段的输出结果为( ) 1 文档名称文档密级 pulPtr = pulArray; *(pulPtr + 2) += 2; printf ("%d,%d\n", *pulPtr, *(pulPtr + 2)); A)8,10 B)6,8 C)7,9 D)6,10

C语言程序设计模拟试题3(附答案)

《C语言程序设计》模拟试卷三 一、填空题。(每空2分,共16分) 1.在内存中,短整型变量占字节,单精度实型变量占字节,字符型变量占字节。 2.一个C语言文件就是由若干个组成。 3.设有以下变量定义,并已赋确定得值 char w; int x; float y; double z; 则表达式:w*x+z-y所求得得数据类型为。 4.若x为int类型,请以最简单得形式写出与逻辑表达式!x等价得C语言关系表达 式。 5.若有如下图所示五个连续得int类型得存储单元并赋值如下图,a[0]得地址小于a[4]得地址。p与s就是基类型为int得指针变量。请对以下问题进行填空。 a[0] a[1] a[2] a[3] a[4] p,给s赋值,使s指向最后一个存储单元a[4]得语句就 是。 (2)若指针s指向存储单元a[2],p指向存储单元a[0],表达式s-p得值就是。 二、单项选择题。(每题2分,共40分) 1.设有 int x=11; 则表达式 (x++ * 1/3) 得值就是()。 A) 3 B) 4 C) 11 D) 12 2.下列程序得输出结果就是()。 A) 3 B) 3、2 C) 0 D) 3、07 main() {double d=3、2; int x,y; x=1、2; y=(x+3、8)/5、0; printf(“%d \n”, d*y); } 3.下列程序执行后得输出结果就是(小数点后只写一位)()。 A) 6 6 6、0 6、0 B) 6 6 6、7 6、7 C) 6 6 6、0 6、7 D) 6 6 6、7 6、0 main() { double d; float f; long l; int i; i=f=l=d=20/3; printf("%d %ld %f %f \n", i,l,f,d); scanf("%d",&d); } 4.下列变量定义中合法得就是()。

C语言程序设计模拟题(含答案)

C语言程序设计试题 一、单项选择题(本题共25小题,每小题2分,共50分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其正确答案涂写在答题卡上。错选、多选或未选均无分。 1. 以下正确的C语言自定义标识符是__A____。 A. _1a B. 2a_ C. do D. 2. 在C语言中,错误的常数表示是___D____。 A. 0L C. '6' D. 设int a, x=2; 执行语句a=x>03*x:x=10;后,变量x的值是___B____。 A. 1 B. 2 C. 6 D. 10 4.设有以下程序段: int x=2,y=2,z=0,a; a=++x||++y&&z++; printf("%d,%d,%d\n",x,y,z); 执行后输出的结果是___C______。 A. 2, 2, 0 B. 3, 3,1 C. 3, 2, 0 D. 3, 2, 1 5. 在C语言中,字符串"\\TOP\t\65\""的长度是__B_____。 A. 5 B.7 C. 8 D. 12 6. 设float x,由键盘输入:, 能正确读入数据的输入语句是___C_____A_。 A. scanf("%5f",&x) B. scanf("%5d",&x); C. scanf("%f",x); D. scanf("%s",&x); 7.逗号表达式a=2*6,a*3,a+5的值是___B______。

A. 12 B. 17 C.36 D. 41 8. C语言程序中,整型常量的书写形式不包括___A______。 A. 二进制 B. 八进制 C. 十进制 D. 十六进制 9. 在C语言中,下列运算符中结合性属于自右向左的是________B_。 A. && B. -- C.<< D. -> 10. 设int x;,则与计算︱x︱等价的表达式是___B______。 A. x>0-x:x B. x>0x:-x C. x<0x:-x D. x<0-x:-x 11.执行下面的程序段后,k的值是__A_____B。 int k=1,n=325; do { k*=n%10;n/=10;}while(n); A. 3 B. 30 C. 523 D. 325 12. 表达式的值为0的是________C_。 A. 5/5%5 B. 5>2 C. !4 D. 0x7&&7 13. 设int a=11, b=2;执行下述程序段后,变量a和b的值分别是___B____。 do { a/=b++; }while(a>b); A. 1,3 B. 1,4 C. 2,3 D. 2,4 14. 在C语言中,下列错误的说法是_______C。 A. 函数可以递归调用

C语言程序设计模拟题

《C语言程序设计》模拟题(补) 一.单项选择题 1.面向对象程序设计将数据与(A )放在一起,作为一个相互依存不可分割的整体来处理. A.对数据的操作B.信息C.数据隐藏D.数据抽象 2.下面是对象概念的描述中,(A )是错误的。 A.对象C就是C语言中的结构变量 B.对象代表着正在创建的系统中一个实体 C.对象是一个状态和操作的封装体 D.对象之间的信息传递是通过消息进行的 3.sizeof(double)是一个(A )表达式。 A.整型B.双精度C.不合法D.函数调用 4.若x、i、j和k都是int型变量,则计算下面表达式后,x的值为(C )。 x = ( i=4, j=16, k=32) A.4B.16C.32D.52 5.下列数据中属于“字符串常量”的是(B )。 A.abg B.“sdfk” C.…dfk? D.…a? 6.设x,y,z,t均为int型变量,则执行以下语句后,t的值为(C )。 x=y=z=1;t=++x||++y&&++z A.不定值B.2 C.1 D.0 7.下面程序的运行结果是(D )。 #include main() { int x,i; for (i=1;i<=100;i++) { x=i; if(++x%2==0) if(++x%3==0) if(++x%7==0) printf ("%d",x); } } A.39 81 B.42 84 C.26 68 D.28 70 8.下面四个选项当中,均是关键字的是(B ) A.auto,enum,include B.switch,typedef,continue C.signed,union,scanf D.if,struct,type 9.C语言中的标示符只能由字母、数字和下划线三种字符组成,且第一个字符(C )A.必须是字母 B.必须是下划线 C.必须是字母或下划线

C语言程序设计模拟试题一(含答案)

C语言程序设计模拟试题一(含答案) 1、下列述叙中正确的是 A) 显示器和打印机都是输出设备 B) 显示器只能显示字符 C) 通常的彩色显示器都有7种颜色 D) 打印机只能打印字符和表格 2、微型计算机中运算器的主要功能是进行 A) 算术运算B) 逻辑运算 C) 算术和逻辑运算D) 初等函数运算 3、https://www.wendangku.net/doc/6a1915010.html,是DOS系统的最外层模块,通常称之为 A) 引导程序B) 输入输出系统 C) 命令处理系统D) 文件管理系统 4、电子邮件是 A) 网络信息检索服务 B) 通过Web网页发布的公告信息 C) 通过网络实时交互的信息传递方式 D) 一种利用网络交换信息的非交互式服务 5、和十进制数225相等的二进制数是 A) 11101110 B) 11111110 C) 10000000 D) 11111111 6、下列叙述中正确的是 A) 指令由操作数和操作码两部分组成\ B) 常用参数xxMB表示计算机的速度 C) 计算机的一个字长总是等于两个字节

D) 计算机语言是完成某一任务的指令集 7、计算机的内存储器比外存储器 A) 价格便宜B) 存储容量大 C) 读写速度快D) 读写速度慢 8、设当前盘为C盘,执行DOS命令"COPY B:\A.TXT PRN"之后,结果是 A) B盘上的A.TXT文件被复制到C盘的PRN文件 B) 屏幕上显示B盘上的A.TXT文件内容 C) B盘上的A.TXT文件内容在打印机上输出 D) B盘上的A.TXT文件被复制到B盘上的PRN文件 9、要将当前盘当前目录下的两个文件X1.TXT和B1.TXT连接起来之后存入B盘当前目录下并且命名为Z.TXT,无论B 盘当前目录是什么,完成这件任务可以使用的命令是 A) COPY A:X1.TXT+C:B1.TXT Z.TXT B) COPY X1.TXT+C:\\WS\\B1.TXT B:\\Z.TXT C) COPY A:X1.TXT+C:\\WS\\B1.TXT D) COPY X1.TXT+B1.TXT B:Z.TXT 10、下列四组DOS命令中,功能等价的一组是 A) COPY A:*.* B:与DISKCOPY A: B: B) COPY ABC.TXT+XYZ.TXT 与TYPE XYZ.TXT>>ABC.TXT C) COPY ABC.TXT+XYZ.TXT与COPY XYZ.TXT+ABC.TXT D) TYPE *.FOR>CON与COPY *.FOR CON 11、设当前目录为D:\BB,现要把D:\AA目录下首字符是A的文本文件全部删除,应该使用命令 A) DEL A*.TXT B) DEL \\AA\\A.TXT C) DEL \\AA\\A*.TXT D) DEL \\AA\\A?.TXT 12、在Windows中,启动应用程序的正确方法是 A) 用鼠标指向该应用程序图标

C语言程序设计模拟试题

这是往年的一份考试题,因为今年是上机考试,所以参考价值并不大.大家简单看看相关知识点的出题方式即可. 《C语言程序设计》模拟试卷 一、单项选择题(本大题共20题,每题2 分,共40分) 1、若a、b均为int型变量,且a=100,则关于循环语句for(b=100;a==b;++a,++b) printf ( “ ------------“) ;的正确说法是。 A、循环体只执行一次 B、死循环 C、循环体一次也不执行 D、输出----------- 2、若x、y、z均为int 型变量,则执行下列语句后的z值为。 x=4; y=2; z=1; z=(x

C语言程序设计 模拟试卷

C语言程序设计课程模拟试卷 一、单项选择题。把合适的选项编号填写在括号内。(每小题3分,共42分) 1.在C语言中,每条复合语句的结束标记字符为()。 A.] B.) C.> D.} 2. 在C语言程序中,单行或行尾注释语句使用的标记符为()。 A. */ B. /* C. // D. ** 3. C语言源程序文件的扩展名为( )。 A. cpp B. exe C. obj D. c 4. 控制字符'\n'表示()。 A. 回车 B. 响铃 C. 换行 D. 换页 5. 运算符优先级最高的是()。 A. == B. + C. && D. || 6. x<=10的相反表达式为()。 A. x>=10 B. x>10 C. x!=10 D. x>0 7. 每次先进行循环条件的判断,然后再执行循环体的语句为()。 A. for和do B. for和while C. while和do D. switch和break 8. 假定对二维数组a[3][4]进行初始化的数据为{{3,5,6},{2,8},{7}},则a[1][1]被初始化为()。 A. 6 B. 2 C. 8 D. 7 9. 对于一个二维字符数组a[M][N],存储每个字符串的长度至多为()。 A. M B. N C. M-1 D. N-1 10. 假定p所指对象的值为25,p+1所指对象的值为42,则表达式*p++的值为()。 A. 25 B. 42 C. 26 D. 43 11. 已知“int a[6][5];”,则元素a[2][4]的地址比该数组的首地址大()。 A. 14个字节 B. 56个字节 C. 28个字节 D. 96个字节 12. 在C语言中,用户定义的标识符分为4种作用域,下列选项中不属于这4种作用域的是()。 A. 全局 B. 语句 C. 文件 D. 局部

最新C语言程序设计模拟试题B(附答案)

《C语言程序设计》模拟试卷十二 一、填空题。(每题2分,共20分) 1.C语句必须以号结束 2.若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是。 3.若有以下程序段, int c1=1,c2=2,c3; c3=1.0/c2*c1; 则执行后,c3中的值是。 4.设有定义:int n,*k=&n;以下语句将利用指针变量k读写变量n中的内容,请将语句补 充完整。 scanf(“%d, ”); printf(“%d\n”, 。); 5.若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值 是。 6.有以下程序段 int k=0 while(k=1)k++; while 循环执行的次数是。 7.表达式a = 1,a + 1,a + + 的值是___________________。 8.设char string[] =″This_is_a_book!″;则数组的长度应是________________。 9.设int a[2][3] = {{2},{3}};则数组元素_____________________的值为3。 10.设有如下变量说明语句 int a[8]={44,55,12,42,94,18,6,67},*p=a; 则通过指针变量p引用值为18的表达式是____ ____。 11.执行下述程序 #include int strlength(char a[],char b[]) { int num=0,n=0; while (*(a+num)!='\0')

num++; while (b[n]) { *(a+num)=b[n]; num++; n++; } return (num); } main() { char strl[81],str2[81],*p1=str1,*p2=str2; gets(p1); gets(p2); printf("%d\n",strlength(p1,p2)); } 若从键盘输入 qwerty abcd 则输出结果是____ ___。 二、单项选择题。(每题2分,共40分) 1.下列叙述中错误的是() A)计算机不能直接执行用C语言编写的源程序 B)C程序经C编译程序编译后,生成后缀为.obj的文件是一个二进制文件C)后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件D)后缀为.obj和.exe的二进制文件都可以直接运行 2.按照C语言规定的用户标识符命名规则,不能出现在标识符中的是()A)大写字母 B)连接符 C)数字字符 D)下划线 3.以下叙述中错误的是()

C语言程序设计模拟题2

C语言程序设计模拟题二 一、选择题 1. _______是构成C语言程序的基本单位。 A) 函数B) 过程c) 子程序D) 子例程 2.可以在C语言中用做用户标识符的是_______。 A)void B)as_b3C)for D)2c define_123-abc Do WORD If cas SIG 3.若有以下类型说明语句: char w;int x;float y,z; 则表达式w*x+z-y的结果为________类型。 A) float B)char C)int D)double 4. main() {float x=123.456; printf("%-5.2f\n",x); } 以上程序输出的结果是________。 A) 123.4B)123.5C)123.45D)123.46 5.下面语句的输出结果是________。 Printf("%d\n",strlen("\t\"\065\xff\n")); A) 14B)8 C) 5D) 输出项不合法,无正常输出 6.下列程序的输出结果是________。 main() {int a=0,b=0,c=0; if(++a>0||++b>0)++c; printf("\na=%d,b=%d,c=%d",a,b,c); } A)a=0,b=0,c=0B)a=l,b=l,c=1 C)a=l,b=O, c=I D)a=0, b=1.c=1 7.下列程序的输出结果是_________。 Main() {int i; for(i=1;i+l;i++) {if(i>4){printlf("%d",i++);break;} } printf("%d",i++); } A) 55 B) 56c) 程序错误,没有输出D) 循环条件永远为真,死循环 8.下列程序的输出结果是_________。 #define A 100 main() {int i=O,sum=O; do{ if(I==(i/2)*2)continue; sum+=i; }while(++i

C语言程序设计模拟试题4(附答案)new

《C语言程序设计》模拟试卷四 一、单项选择题(每题2分,共30分) 1、下列对C语言特点的描述中,错误的是。 A)C语言不是结构化程序设计语言 B)C语言编程简洁明了 C)C语言功能较强 D)C语言移植性好 2、设变量a是整型,b是实型,c是双精度型,则表达式2+‘ a ’+b*c值的数据类型。 A)int B)float C)double D)不确定 3、在a=2,b=0,c;则执行c=b||a--;语句后,a和c的结果是。 A)0,1 B)1,0 C)1,1 D)2,0 4、在scanf()函数的给是说明符中,长整型数的输入格式说明符是。A)%d B)%ld C)%lf D)%x 5、以下程序的执行结果是。 main() { int n=1; printf(“%d,%d,%d”,n,++n,n--); } A)1,1,1 B)1,2,1 C)0,1,1 D)1,2,2 6、判断char型变量ch是否为大写字母的正确表达式是。 A)‘A’<=ch<=‘Z’ B)(ch>=‘A’)&(ch<=‘Z’) C)(‘A’<=ch)AND(‘Z’>=ch) D)(ch>=‘A’)&&(ch<=‘Z’) 7、能够完成如下函数计算的程序段是。 - 1 x < 0 y = 0 x = 0 1 x > 0

A)y = - 1 ; B)if ( x > = 0 ) if ( x != 0 ) if ( x > 0 ) y = 1 ; if ( x > 0 ) y = 1 ; else y = 0 ; else y = 0 ; else y = -1 ; C)y = 0 ; D)y = - 1 ; if ( x > = 0 ) if ( x > 0 ) y = 1 ; if ( x > 0 ) y = 1 ; else y = 0 ; else y = -1 8、下列循环语句中,执行循环体的次数是。 int i,j; while(10) printf(“ABC”); A)10次 B)0次 C)1次 D)无限次 9、若i、j已定义为int类型,则以下程序段中的内循环体的执行次数是。 for(i = 4; i; i--) for(j = 0; j < 5; j++) { …… } A)10 B)15 C)20 D)25 10、数组赋初值时的数据项的个数与数组元素的个数的下列关系中,错误的是。 A)大于 B)小于 C)等于 D)小于等于 11、下列数组初始化的定义中,错误的是。 A)int a[5]={a}; B)char s[5]=“a123b”; C)int n[]={6,5,4,3,2,1}; D)int b[3]={1,2,3}; 12、已知:static int a[][3]={{5},{3},{13}};数值为0的元素是。 A) a[0][0] B) a[0][2] C) a[1][0] D) a[2][0] 13、关于下列函数定义的描述中,错误的是。 A) 定义函数时必须指出函数名和函数的类型 B) 定义函数时可以省略函数的类型 C) 函数可以嵌套定义 D) 函数不可以嵌套定义

C语言程序设计模拟试题5(附答案)

《C语言程序设计》模拟试题五 一、填空题(40分) 1.计算机软件分为和;C语言适合编写. 2.十进制数35=( )2 =( )8 =( )16 3.已知一个数[X]补=11111001,求[X]原= 及X= . 4.设x=2.5,a=7,y=4.7.求下列算术表达式的值. x+a%3*(int)(x+y)%2/3= . 5.将算式|3-e x ln(1+Y)|写成C语言表达式 . 6.设a=5,b=9.则printf(“a=%d,b=%4d”,a,b)输出为: . 7.用C语句写出累加器、累乘器、计数器. 8.上机操作时,CTRL+F9键的功能是,F2键的功能是 ALT+F5键的功能是. 9.下列程序段对应的数学表达式是 int t,n,s=0; scanf(“%d”,&n); for(i=1;i<=n;i++) { t=1; for(j=1;j<=i;j++) t=t*j; s=s+t;} 10.以下程序用“顺序查找法”查找数组a中是否存在某一关键字. 请填空.

main() {int a[10]={25,57,48,38,12,92,88,48,16,25}; int i,x; scanf(“%d”,&X); for(i=0;i<10;i++) if (x==a[i]) {printf(“Found!The index:%d\n”a[i]);(1) ;} if (2) printf(“Can not found!”); } 二、单选题(15分) 1.一个C程序的执行是从. A.本程序的main()函数开始,到main函数结束. B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束. C.本程序的main()函数开始,到本程序文件的最后一个函数结束. D.本程序文件的第一个函数开始,到本程序main函数结束. 2.根据下面的程序及数据的输入和输出形式,程序中输入语句的正确形式为. main() { int a,b,c; 输入语句; printf(“%c%c%c”,a,b,c);

C语言程序设计模拟题

C语言程序设计模拟题(1) 一、选择题 (1)能将高级语言程序转换成目标语言程序的是__ C____。 A)调试程序B)解释程序C)编译程序D)编辑程序 (2)__A____是构成C语言程序的基本单位。 A)函数B)过程C)子程序D)子例程 (3)可以在C语言中用做用户标识符的是__B___。 A)void B)as_b3 C)for D)2c define _123 -abc Do WORD If cas SIG (4)若有以下类型说明语句: char w; int x; float y, z; 则表达式w*x+z-y的结果为__D___类型。 A)float B)char C)int D)double (5)main() { float x=123.456; printf("%-5.2f\n",x); } 以上程序输出的结果是___D___。 A)123.4 B)123.5 C)123.45 D)123.46 (6)下面语句的输出结果是___C___。 printf("%d\n",strlen("\t\"\065\xff\n")); A)14 B)8 C)5 D)输出项不合法,无正常输出(7)下列程序的输出结果是__B____。 main() { int a=0,b=0,c=0; if(++a>0| ++b>0) ++c; printf("\na=%d,b=%d,c=%d",a,b,c); }

A)a=0,b=0,c=0 B)a=1,b=1,c=1 C)a=1,b=0,c=1 D)a=0,b=1,c=1 (8)下列程序的输出结果是__B____。 main() { int i; for(i=1;i+1;i++) { if(i>4) {printf("%d",i++);break;} } printf("%d",i++); } A)55 B)56 C)程序错误,没有输出D)循环条件永远为真,死循环(9)下列程序的输出结果是___A___。 #define A 100 main() { int i=0,sum=0; do{ if(i==(i/2)*2) continue; sum+=i; }while(++i

相关文档
相关文档 最新文档