全国计算机二级C考试题库程序设计部分

全国计算机二级C考试题库程序设计部分
全国计算机二级C考试题库程序设计部分

1、找出2xM整型二维数组中最大元素的值,并将此值返回调用函数。

int fun (int a[][M])

{

int i,j,max=a[0][0];

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

for(j=0;j

if(max

max=a[i][j];

return max;}

2、根据以下公式求π值。

double fun ( double eps)

{ double s=0.0,s1=1.0;

int n=0;

while(s1>=eps)

{ s=s+s1;

s1=s1*n/(2*n+1);

n++;

}

return 2*s;

}

3、求出1~1000之间能被7或11整除但不能同时被7和11整除的所有整数,并将其放在a所指的数组中,通过n返回这些数的个数。

void fun (int *a, int *n)

{ int i,j=0;

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

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

a[j++]=i;

*n=j;

}

4、删除字符串中所有*号。

void fun( char *a )

{ int i,j=0;

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

if(a[i]!='*')

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

a[j]='\0';

}

5、实现两个字符串的连接(不要同时使用库函数),即把p2所指的字符串连接到p1所指的字符串的后面。

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

{

int i,j;

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

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

p1[i++]=p2[j];

p1[i]='\0';}

6、某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出,请编写函数fun,其功能:求出平均分,并放入记录的ave成员中。

void fun(STREC *a)

{ int i;

a->ave=0.0;

for(i=0;i

a->ave=a->ave+a->s[i];

a->ave/=N; }

7、n名学生的成绩已在主函数中放入一个带头结点的链表结构中,h指向链表的头结点。求出平均分,并由函数值返回double fun( STREC *h )

{ double ave=0.0;

STREC *p=h->next;

while(p!=NULL)

{ ave=ave+p->s;

p=p->next;

}

return ave/N;}

8、将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过K返回。

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

{ int i,j,n=0;

for(i=4;i

{ for(j=2;j

if(i%j==0) break;

if(j

}

*k=n;

}

9、求ss所指字符串中指定字符的个数,并返回此值。

int fun(char *ss, char c)

{ int i=0;

for(;*ss!='\0';ss++)

if(*ss==c)

i++;

return i;

}

10、计算n门课程的平均分,结果作为函数值返回。

float fun ( float *a , int n )

{ int i;

float av=0.0;

for(i=0; i

av=av+a[i];

return(av/n);

}

11、学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,求最高的学生数据放在b所指的数组中。注意:分数最高的学生可能不止一个,函数返回分数最高的学生的人数。

int fun( STREC *a, STREC *b )

{ int i,j=0,max=a[0].s;

for(i=0;i

if(max

for(i=0;i

if(max==a[i].s)

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

return j; }

12、除了字符串前导的*号之外,将串中其他*号全部删除。void fun( char *a )

{ int i=0;

char *p=a;

while(*p&&*p=='*')

{ a[i]=*p;

i++;

p++;

}

while(*p)

{ if(*p!='*')

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

p++;

}

a[i]='\0';

}

13、统计在tt所指的字符串中’a’到’z’26个小写字母给出现的次数,并依次放在pp所指数组中。

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

{ int i;

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

pp[i]=0;

for(;*tt!='\0';tt++)

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

pp[*tt-'a']++;

}

14、将字符串尾部的*号全部删除,前面和中间的*号不动。void fun( char *a )

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

a++;

a--;

while(*a=='*')

a--;

*(a+1)='\0'; }

15、比较字符串的长度,函数返回较长的字符串,如果相同,则返回第一个字符串。

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

{ int i,j;

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

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

if(i<=j)

return t;

else

return s;}

16、学生的记录由学号成绩组成,N名学生的数据已放入主函数中的结构体数组s中,函数返回该学生的学生数据,指定的学号在主函数中输入。若没找到指定学号,在结构体变量中给学号置空串,给成绩置-1,作为函数数值返回。

STREC fun( STREC *a, char *b )

{int i;

STREC str={"\0",-1};

for(i=0;i

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

str=a[i];

return str;

}

17、将s所指字符串中除下标为偶数同时ASCII码值也为偶数的字符外,其余的全部删除字符串中剩余的字符所形成的新串放在t数组中。 void fun(char *s, char t[]) {

int i,j=0;

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

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

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

t[j]='\0';

}

18、利用下面的简单迭代方法求方程cos(x)-x=0的一个实根s。

double fun()

{ double x0,x1;

x1=0.0;

do

{

x0=x1;

x1=cos(x0);

}while(fabs(x0-x1)>=1e-6);

return x1;

}

19、将字符串中的前导*号全部移到字符串尾部。

void fun( char *a )

{ int i=0,n=0;

char *p;

p=a;

while (*p=='*') /*判断*p是否是*号,并统计*号的

个数*/

{

n++;p++;

}

while(*p) /*将前导*号后的字符传递给a*/ {

a[i]=*p;i++;p++;

}

while(n!=0)

{

a[i]='*';i++;n--;

}

a[i]='\0';}

20、N名学生的数据已放入主函数中的结构体数组中,把分

数最低的学生数据放入b所指的数组中。

int fun( STREC *a, STREC *b )

{int i,j=0,min=a[0].s;

for(i=0;i

if(min>a[i].s)

min=a[i].s; /*找出最小值*/

for(i=0;i

if(min==a[i].s)

b[j++]=a[i]; /*找出成绩与min相等的学生的记录,存入结构体b中*/

return j;

}

21、计算

double fun( int m )

{ int i;

double s=0.0;

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

s=s+log(i);

return sqrt(s);

}

22、只删除字符前导和尾部的*号,串中字母间的*号都不删除。

void fun( char *a, int n,int h,int e )

{ int i,j=0;

for(i=h;i

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

a[j]='\0'; }

23、将s所指字符串中下标为偶数的字符删除,剩余字符形

成的新串放在t所指数组中

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

{ int i,j=0,k=strlen(s);

for(i=1;i

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

t[j]='\0';}

24、将a,b中的两位正整数合并成一个新的整数放在c 中。合并方式是:将a中的十位和个位依次放在变量c的百位和个位上,B中的十位和个位数依次放在变量c的十位和千位上。

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

{

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

}

25、除了尾部的*号之外,将字符中的其他的*号全部删除。形参p已指向字符串最后的一个字母。

void fun( char *a, char *p )

{ char *t=a;

for(;t<=p;t++)

if(*t!='*')

*(a++)=*t;

for(;*t!='\0';t++)

*(a++)=*t;

*a='\0';

}

26、N名学生的数据已放入主函数中的结构体数组中,按分数降序排列学生的记录,高分在前,低分在后。

void fun( STREC a[] )

{ int i,j;

STREC t;

for(i=1;i

for(j=0;j

if(a[j].s

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

}

27、N名学生的数据已放入主函数中的结构体数组中,把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分的学生人数通过形参n传回,平均分通过函数值返回。double fun( STREC *a, STREC *b, int *n )

{

int i;

double av=0.0;

*n=0;

for(i=0;i

av=av+a[i].s;

av=av/N;

for(i=0;i

if(av<=a[i].s)

{ b[*n]=a[i];*n=*n+1;}

return av; }

28、将1~m之间(含m)能被7或11整除的所有整数放在数组a中,并通过n返回这些数的个数。

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

{ int i,j=0;

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

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

a[j++]=i;

*n=j; }

29、将字符串中的前导*号全部删除,中间和尾部的*号不删除。

void fun( char *a )

{ char *p=a; while(*p=='*') p++;

for(;*p!='\0';p++,a++)

*a=*p;

*a='\0'; }

30、N名学生的成绩已在主函数中放入一个带有头结点的链表结构中,h指向链表的头结点。找出学生的最高分。double fun( STREC *h )

{ double max=h->s;

while(h!=NULL)

{if(maxs) max=h->s;

h=h->next;

}

return max;

}

30、找出一维整型数组元素最大的值及其所在的下标,并通过形参传回。主函数中x是数组名,n是x数据个数,max 存放最大值,index存放最大值所在元素的下标。

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

{ int i;

*max=a[0];

*d=0;

for(i=0;i

if(*max

{*max=a[i];*d=i;}

}

31、将s所指字符串中除了下标为奇数同时ASCII值也为奇数的字符之外,其余的所有字符全部删除,串在剩余字符所形成的一个新串放在t所指的数组中。

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

{ int i,j=0,n;

n=strlen(s);

for(i=0;i

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

{t[j]=s[i];

j++;

}

t[j]='\0'; }

32、实现B=A+’A’,即将矩阵A加上A的转置,存放在矩阵B中。

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]; }

33、将M行N列的二维数组中的数据,按列的顺序依次放到一维数组中。

void fun(int (*s)[10],int *b,int *n,int mm,int nn)

{ int i,j;

for(j=0;j

for(i=0;i

{

b[*n]=*(*(s+i)+j);

*n=*n+1;

}

}

34、将两个两位数的正整数a,b合并成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的千位和十位

上。

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

{

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

}

35、将放在字符串数组中的M个字符串(每串的长度不超过N),按顺序合并成一个新的字符串。

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

{ int i,j,k=0;

for(i=0;i

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

b[k++]=a[i][j];

b[k]='\0';

}

36、删除一个字符串中指定下标的字符。a指向原字符后的字符串存放在b所指的数组中,n中存指定的下标。

void fun (char a[], char b[], int n)

{ int i,k=0;

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

if(i!=n)

b[k++]=a[i];

b[k]='\0';

}

37、移动一维数组中的内容,若数组中有n个整数,要求把下标从0~p(含p,p小于等于n-1)的数组元素平移到数组的最后。

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;

}

}

38、将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。

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

{ int i,j,k=0;

for(i=0;i

for(j=0;j

b[k++]=s[j][i];

b[k]='\0';

}

39、计算

float fun(int n)

{ int i,s1=0;

float s=0.0;

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

{s1=s1+i;

s=s+1.0/s1;

}

return s;

}

40、将s所指字符串中ASCCII值为奇数的字符删除,剩余字符形成的新串放在t所指数组中

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

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

for(i=0;i

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

{ t[j]=s[i];

j++;

}

t[j]='\0';

}

42、删除一维数组中所有相同的数使之只剩一个。数组中的数已按由小到大的顺序排列函数返回删除后数组的数据。int fun(int a[], int n)

{ int i,j=1;

for(i=1;i

if(a[j-1]!=a[i])

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

return j;

}

43、除了字符串前导和尾部的*号外,将串中其他的*号全部删除。

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

{ int i=0;

char *q=a;

while(q

{ a[i]=*q; q++;i++;}

while(q

{ if(*q!='*')

{ a[i]=*q;

i++;

}

q++;

}

while(*q)

{ a[i]=*q; i++; q++;}

a[i]='\0';

}

44、将a,b的两个两位正整数合并成一个新的整数放在c 中,合并方式是:将a中的十位和个位数依次放在变量c的百位和个位上,b中的十位和个位数依次放在变量c的千位和十位上。

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

{

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

}

45、使字符串的前导*号不得多于n个,若多于n个,则删除多余的*号,若少于或等于n个,则不做处理,字符串中间和尾部的*号不删除。

void fun( char *a, int n )

{ int i=0;

int k=0;

char *p,*t;

p=t=a;

while(*t=='*')

{k++;t++;}

if(k>n)

{ while(*p)

{ a[i]=*(p+k-n);

i++;

p++;

}

a[i]='\0';

}

}

46、将两个两位数的正整数a,b合并成一个整数放在c中,合并方式是:将a数的十位和个位数依次在c数的个位和百位上,b数的十位和个位数依次放在c数的十位和千位上。void fun(int a, int b, long *c)

{

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

}

47、将一个数字字符串转换为一个整数。

答案:ong fun ( char *p)

{ long n=0;

int flag=1;

if(*p=='-')

{p++;flag= -1;}

else if(*p=='+')

p++;

while(*p!='\0')

{n=n*10+*p-'0';

p++;

}

return n*flag;

}

48、求Fibonacc数列中大于t的最小的数,结果由函数返回。Fibonacc数列F(n )定义为

int fun( int t)

{ int f0 = 0, f1 = 1, f ;

do {

f = f0 + f1 ;

f0 = f1 ;

f1 = f ;

} while(f < t) ;

return f ;

}

49、把低于平均分的学生数据放入b所指的数组中低于平均分的学生人数通过形参n返回,平均分通过函数值返回double fun( STREC *a, STREC *b, int *n )

{ int i,j=0;

double av=0.0;

for(i=0;i

av=av+a[i].s;

av=av/N;

for(i=0;i

if(a[i].s

*n=j;

return av;

}

50、将ss所指字符串所有下标为奇数位上的字母转换为大写。

void fun ( char *ss )

{ int i;

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

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

ss[i]=ss[i]-32;

}

51、将a,b两个正整数合并成一个新的整数放在c中。合并方式:将a中的十位和个位数依次放在变量c的千位和十位上,b中的十位和个位数依次放在变量c的个位和百位上。void fun(int a, int b, long *c)

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

52、使字符串中尾部的*号不多于n个,若多于n个,则删除多余的*号,若少于或等于n个,则不做任何操作,字符中间的*不删除。

void fun( char *a,int n )

{ int i=0,k=0;

char *p, *t;

p=t=a;

while(*t)

t++;

t--;

while(*t=='*')

{k++;t--;}

if(k>n)

{while(*p&&p

{ a[i]=*p;

i++;p++;

}

a[i]='\0';

}

}

53、将a,b两个正整数合并成一个新的整数放在c中。合并方式:将a中的十位和个位数依次放在变量c的十位和千位上,b中的十位和个位数依次放在变量c的百位和个位上。void fun(int a, int b, long *c)

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

}

54、将a,b两个正整数合并成一个新的整数放在c中。合并方式:将a中的十位和个位数依次放在变量c的千位和十位上,b中的十位和个位数依次放在变量c的十位和个位上。

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

{

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

}

55、把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。

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;

}

56、将s所指字符串中ASCII码值为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。

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

{ int i=0;

for(;*s!='\0';s++)

if(*s%2==1)

t[i++]=*s;

t[i]='\0';

}

57、找出成绩最高的学生记录,通过形参返回主函数(规定只有一个最高分)

fun(STU a[], STU *s)

{ int i;

*s=a[0];

for(i=0;i

if(s->s

*s=a[i];

}

58、定义了N x N的二维数组,使数组左下办三角元素中的值乘以n。

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

{ int i,j;

for(i=0;i

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

a[i][j]=a[i][j]*n;

}

59、定义了N x N的二维数组,使数组左下办三角元素中的值全部置成0.

void fun (int a[][N])

{ int i,j;

for(i=0;i

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

a[i][j]=0;

}

60、请编一个函数void fun(int tt[M][N]),tt指向一个M 行N列的二维数组,求出二维数组每列中最大元素,并依次放入pp所指的一维数组中。

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

{ int i,j,max;

for(j=0;j

{

max=tt[0][j];

for(i=0;i

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

max=tt[i][j];

pp[j]=max;

}

}

61、w是一个大于10的无符号整数,若w是n(n》2)位的整数,则函数求出w的后n-1位的数作为函数值返回unsigned fun(unsigned w)

{ int n=1,j,s=1;

unsigned t;

t=w;

while(t>=10)

{

t=t/10;

n++;

}

for(j=1;j

s=s*10;

return w%s;

}

62、请编一个函数fun(char*s),该函数的功能是:把字符串中的内容逆置。

void fun(char*s)

{ char ch;

int i,m,n;

i=0;

m=n=strlen(s)-1;

while(i<(n+1)/2)

{ ch=s[i];

s[i]=s[m];

s[m]=ch;

i++; m--;

} }

63、从字符串中删除指定的字符。同字母的大、小写按不同字符处理

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';

}

64、对长度为7个字符的字符串,除首、尾字符外,将其余5个字符安ASCII码降序排列。

void fun(char *s,int num)

{ char ch ;

int i, j ;

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

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

{

if(*(s + i) < *(s + j))

{

ch = *(s + j) ;

*(s + j) = *(s +i) ;

*(s + i) = ch ;

}

}}

65、统计一个长度为2的字符串在另一个字符串中出现的次数。

int fun(char *str, char *substr)

{ int i,j=0;

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

if(str[i]==substr[0]&&str[i+1]==substr[1]) j++;

return j; }

66、计算并输出给定整数n的所有因子(不包括1与自身)之和。规定n的值不大于1000.

int fun(int n)

{ int s=0,i;

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

if(n%i==0)

s+=i;

return s;

}

67、计算

double fun(int n)

{ double t,sn=1.0;

int i,j;

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

{

t=1.0;

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

t*=j;

sn+=1.0/t;

}

return sn; }

68、计算并输出x<0.97时,如下多项式的值,直到

为止。

double fun(double x)

{ double s1=1.0,p=1.0,sum=0.0,s0,t=1.0;

int n=1;

do

{ s0=s1;

sum+=s0;

t*=n;

p*=(0.5-n+1)*x;

s1=p/t;

n++;

}while(fabs(s1-s0)>=1e-6);

return sum;

}

69、计算并输出给定10个数的方差,其中

double fun(double x[10])

{ double x1=0.0,s=0.0;

int i;

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

x1=x1+x[i];

x1=x1/10;

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

s=s+(x[i]-x1)*(x[i]-x1);

return sqrt(s/10);

}

70、计算并输出给定数组(长度为9)中相邻两个元素的平均值的平方根之和。

double fun(double x[9])

{double sum=0.0;

int i,j=1;

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

if(j<=8)

{

sum+=sqrt((x[i]+x[i+1])/2.0);j++;

}

return sum;

}

71、计算并输出下列多项式值

double fun(int n)

{ int i;

double s=0.0;

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

s=s+(1.0/(2*i-1)-1.0/(2*i));

return s; }

72、计算并输出多项式值

double fun(int n)

{ double sum=0,tmp=1;

int i;

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

{

tmp=tmp*i;

sum+=1.0/tmp;

}

return sum;}

73、计算并输出n(包括n)以内所有能够被5或9整除的

自然数的倒数之和。

double fun(int n)

{ int i;

double sum=0.0;

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

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

sum+=1.0/i;

return sum;

}

74、计算并输出3~n之间所有素数的平方根之和。

double fun(int n)

{ int m,k,i;

double s=0.0;

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

{

k=sqrt(m);

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

if(m%i==0) break;

if(i>=k+1)

s+=sqrt(m);

}

return s;}

75、计算并输出

double fun(int n)

{ int i;

double s=0.0,s1=0.0;

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

{s1=s1+pow(i,0.5);

s=s+s1;

}

return s;}

76、统计一行字符串中单词个数,作为函数值返回。字符串

在主函数中输入,规定所有单词有小写字母组成,单词之间

有若干个空格隔开,一行的开始没有空格。

int fun(char *s)

{ int i,j=0;

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

if(s[i]!=' '&&(s[i+1]==' '||s[i+1]=='\0')) j++;

return j; }

77、找出成绩最低的学生记录,通过形参返回主函数(规定

只有一个最低分)。

fun(STU a[], STU *s)

{ int i;

*s=a[0];

for(i=0;i

if(s->s>a[i].s)

*s=a[i];}

78、定义N x N二维数组,并在主函数中自动赋值。使数组

右上办三角元素中的值乘以m。

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

{ int i,j;

for(j=0;j

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

a[i][j]=a[i][j]*m; }

79、定义N x N二维数组,并在主函数中自动赋值。求出数组周边元素的平均值并作为函数值返回主函数的s double fun (int w[][N])

{ int i,j,k=0;

double av=0.0;

for(i=0;i

for(j=0;j

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

{av=av+w[i][j];

k++;

}

return av/k; }

80、求出二维数组周边元素之和,作为函数值返回。

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

{ int i,j,sum=0;

for(i=0;i

for(j=0;j

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

sum=sum+a[i][j];

return sum; }

81、使变量h中的值保留两位小数,并对第三位进行四舍五入(规定h中的值为正数)

float fun (float h )

{ long t;

t=(h*1000+5)/10;

return (float)t/100; }

82、实现矩阵(3行、3列)的转置(即行列互换)

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

{ int i,j,t;

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

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

{t=array[i][j];

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

array[j][i]=t;

}}

83、int fun(int lim,int aa[MAX])求出小于或等于lim的所有素数并放在aa数组中,并返回所求出的素数的个数。

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

{ int i,j,k=0;

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

{ for(j=2;j

if(i%j==0) break;

if(j>=i)

aa[k++]=i;

}

return k;}

84、从传入的num个字符中找出最长的一个字符串,通过形参指针max传回该串地址(用****作为结束输入的标识) char *fun(char (*a)[81], int num, char *max)

{ int i=0;

max=a[0];

for(i=0;i

if(strlen(max)

max=a[i];

return max; }

85、删除字符串中的所有空格。void fun (char *str)

{ int i=0;

char *p=str;

while(*p)

{

if(*p!=' ')

{

str[i]=*p;

i++;

}

p++;

}

str[i]='\0'; }

86、判断字符串是否为回文,若是,则函数返回1,主函数中输出”YES”,否则返回0,主函数输出”NO”。

int fun(char *str)

{ int i,n=0,fg=1;

char *p=str;

while (*p)

{

n++;

p++;

}

for(i=0;i

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

else

{

fg=0;

break;

}

return fg; }

87、将M行N列的二维数组中的数据,按行的顺序依次放到一维数组中,一维数组中数据的个数存放在形参n所指的存储单元中。

void fun (int (*s)[10], int *b, int *n, int mm, int nn)

{ int i,j,k=0;

for(i=0;i

for(j=0;j

b[k++]=s[i][j];

*n=k; }

88、将s所指字符串中下标为偶数同时ASCII值为奇数的字符删除,s所指串中剩余的字符形成的新串放在t所指的数组中。

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

{ int i, j = 0 ;

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

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

t[j] = 0 ;}

89、将ss所指字符串所有下标为奇数位置的字母转换为大写(若该位置上不是字母,则不转换)

void fun(char *ss)

{ int i;

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

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

ss[i]=ss[i]-32; }

90、将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); } 91、m个人的成绩存放在score数组中,将低于平均分的人数作为函数值返回,将低于平均分的分数放在below所指的数组中。

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

{ int i,j=0;

float av=0.0;

for(i=0;i

av=av+score[i]/m;

for(i=0;i

if(score[i]

below[j++]=score[i];

return j; }

92、求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。

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; }

93、将大于整数m且紧靠m的k个素数存入所指的数组中。

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

{ int i,j,n;

for(i=m+1,n=0;n

{for(j=2;j

if(i%j==0) break;

if(j>=i)

xx[n++]=i; }}

94、求出数组的最大元素在数组中的下标并存放在k所指向的存储单元中。

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

{ int i;

*k=0;

for(i=0;i

if(s[*k]

return s[*k]; }

95、根据以下公式求p的值,结果由函数值带回。m与n为两个正整数且要求m>n。

long jc(int m)

{ long s=1;

int i ;

for(i=1;i<=m;i++) s=s*i ;

return s;}

float fun(int m, int n)

{

float p;

p=1.0*jc(m)/jc(n)/jc(m-n) ;

return p;}

96、求小于形参n同时能被3与7整除的所有自然是之和的平方根,并作为函数值返回。

double fun( int n)

{ double sum=0.0;

int i;

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

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

return sqrt(sum); }

97、计算并输出下列多项式的值

double fun(int n)

{ int i;

double s=0.0;

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

s=s+1.0/(i*(i+1));

return s;}

98、计算下列级数和。

double fun(double x, int n)

{ int i;

double s=1.0,s1=1.0;

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

{s1=s1*i;

s=s+pow(x,i)/s1;

}

return s;}

99、移动字符串中的内容,移动的规则是把第1~m个字符,平移到字符串的最后,把第m+1到最后的字符移到字符串的前部。

void fun (char *w,int m)

{int i,j;

char t;

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

{t=w[0];

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

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

w[j-1]=t; }}

100、统计各年龄段的人数。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=0;j

b[j]=0;

for(i=0;i

if(a[i]>=100)

b[10]++;

else

b[a[i]/10]++; }

double rnd()

{ static t=29,c=217,m=1024,r=0;

r=(r*t+c)%m;

return((double)r/m);}

101、统计s所指字符串中的数字字符个数,并作为函数值返回。

int fun(char *s)

{ int n=0;

char *p;

for(p=s;*p!='\0';p++)

if((*p>='0')&&(*p<='9'))

n++;

return n;}

102、查找x在s所指数组中下标的位置,并作为函数值返回,若x不存在,则返回-1.

int fun( int *s, int x)

{ int i;

for(i=0;i

if(x==s[i]) return i;

return -1;}

103、将形参s所指字符串放入形参a所指的字符数组中,使a中存放同样的字符串。

void fun( char *a , char *s)

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

{ *a=*s;

a++;

s++;

}

*a='\0';}

104、将一个数字字符串转换成与其面值相同的长整型数组。可调用strlen函数求字符串的长度。

long fun( char *s )

{ int i,sum=0,len;

len=strlen(s);

for(i=0;i

{ sum=sum*10+*s-48;

s++; }

return sum; }

105、将一组得分中,去掉一个最高分和一个最低分,然后求平均值,并通过函数返回。函数形参a指向存放得分的数组,形参n中存放得分个数(n>2)

double fun(double a[ ] , int n)

{ double sum=0,max,min;int i;

max=min=a[0];

for(i=0;i

{ sum=sum+a[i];

if(max

if(min>a[i])min=a[i]; }

sum=sum-max-min;

return(sum/(n-2));}

106、将ss所指字符串中所有下标为奇数位置的字母转换为大写(若该位置上不是字母,则不转换)

void fun(char *ss)

{ int i;

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

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

ss[i]=ss[i]-32; }

107、求小于形参n同时能被3与7整除的所有自然是之和的平方根,并作为函数值返回。

double fun( int n)

{ double sum=0.0;

int i;

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

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

return sqrt(sum); }

108、请编写函数fun,它的功能是:求出能整除形参x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。

例如,若x中的值为:35,则有4个数符合要求,它们是:1,5,7,35。

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

{ int i,k,j = 0 ;

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

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

*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;} }

国家计算机二级考试试题最新题库

2011年9月国家计算机二级考试试题最新题库 一、选择 6.面象对象方法中,继承是指() A.一组对象所具有的相似性质B.一个对象具有另一个对象的性质 C.各对象之间的共同性质 D.类之间共享属性和操作的机制 7.层次型,网状型和关系型数据库划分原则是() A.记录长度B.文件的大小C.联系的复杂程度D.数据之间的联系方式 8.一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是() A.一对一B.一对多C.多对多D.多对一 1. 下列叙述中正确的是() A.线性表的链式存储结构与顺序存储结构需要的存储空间是相同的 B.线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构 C.线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构 D. 上述三种说法都不正对 2. 下列叙述中正确的是() A.在栈中,栈中元素随栈底指针的变化而动态变化 B.在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化 C.在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化 D. 上述三种说法都不正对 3.软件测试的目的是()

A.评估软件的可靠性B.发现并改正程序中的错误C.改正程序中的错误 D. 发现程序中的错误 4. 下列描述中不属于软件危机表现的是() A.软件过程不规范B.软件开发生产率低 C.软件质量难以控制 D.软件成本不断提高 5.软件生命周期是指() A.软件产品从提出、实现、使用维护到停止使用退役的过程B.软件从需求分析、设计、实现到测试完成的过程 C.软件的开发过程 D. 软件的维护过程 9.数据库设计中反映用户对数据要求的模式是()A.内模式B.概念模式C.外模式D.设计模式 10. 有三个关系R,S和T如下: A.自然连接B.交C.投影 D.并

程序设计基础上机考试题库

第三章: 1.输入整数n,输出由2×n+1行2×n+1列组成的以下(n=2)的图案。 2.输入整数n(<10),输出以下形式(n=3)的数字排列图案。 3.编写一个程序,输入一个整数,输出0~9各数字在该整数中出现的次数。 4.编写一个程序,输出所有英文字符及它们的ASCII码值,其中代码值分别用八进制形式、十六进制形式和十进制形式输出。 5.水仙花数是一个n(n>=3)位数字的数,它等于每个数字的n次幂之和。例如,153是一个水333。试编写一个程序求小于999的所有水仙花数。仙花数,153=1+5 +3 6. 编写程序解百鸡问题:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡。问鸡翁、鸡母和鸡雏各几何 7.编写一个程序,输入一个整数,逐位地输出整数的十进制数,要求位与位之间有一个空格符分隔。 8.编写程序,列表输出整数1~10的平方和立方值。 9.编写一个程序,输入3个实数,判断这些值能否作为一个三角形的三条边的长,如果能构成三角形,要求输出三角形的面积。 的图案。4等于n列星号字符组成的三角形图案。以下是n行n,输出n输入正整数10. 11.输入正整数n,输出由n行2×n-1列星号字符组成的三角形图案。以下是n 等于3的图案。

12.输入正整数你n,输出n行2×n-1列的空心三角形图案。以下是n等于4的图案。 13..输入正整数n,输出n行n列的空心四边形图案。以下是n等于5的图案。 14.编写程序,按下面的公式计算自然对数底e的值。 E=1+1/1!+1/2!+1/3!+1/5!+··· 15.编写程序,按如下公式计算圆周率π的近似值。 π=4-4/3+4/5-4/7+4/9-4/11+··· 16.编写输入正实数x,求平方不超过x的最大整数n,并输出。 回文整数是指正读和反读相同的整数,编写一个程序,输入一个整数,判断它是否是回文17. 整数。 17.编写一个程序,输出1~256十进制数等价的二进制、八进制和十六进制数值表。 18.草地上有一堆野果,有一只猴子每天去吃掉这堆野果的一半又一个,5天后刚好吃完这堆野果。求这堆野果原来共有多少个猴子每天吃多少个野果 19.输入n(>2)个整数,输出其中的次最小的数。 第四章 1.在数组的某个下标位置插入一个元素。 2.将数组的某个下标位置的元素从数组中删掉。 3.在数组a[]的前n个元素中寻找值等于变量key值的元素的下标。 4.输入n个整数,用冒泡法将它们从小到大排序,然后输出。 5.用C代码描述以下计算要求: (1)输出一组数组中下标是4的倍数的元素。

(完整版)2019年全国计算机二级考试试题题库(附答案)

2019年全国计算机二级考试试题题库(附答案) 一、选择题((1)-(40)每小题1分,(41)-(50)每小题2分,共60分) 下列各题 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) (11011001)2 B) (37)8 C) (75)10 D) (2A)16 (6) 二进制数1110111.11转换成十六进制数是 A) 77.C B) 77.3 C) E7.C D) E7.3 (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,则要

java程序设计试题库

《Java语言程序设计基础教程》 练习思考题参考答案 第1章Java程序设计概述 1、1单项选择题 1.编译Java Application源文件将产生相应得字节码文件,扩展名就是什么 A、、java ???? B、、class ?C、、html??? D、、exe 解答:B 2.Java语言具有许多优点与特点,下列选项中,哪个反映了Java中“一次编 译,随处运行”得特点. ?A、简单性????B、平台无关性 C、面向对象性???? D、安全性 解答:B 3.Java语言具有许多优点与特点,下列选项中,哪个反映了Java中并行机制得 特点。 ?A、多线程???B、平台无关性 C、面向对象性??? D、安全性 解答:A 4。在Java语言中,下列哪些语句关于内存回收得说明就是正确得? ?A.程序员必须创建一个线程来释放内存; B.内存回收程序负责释放无用内存; C.内存回收程序允许程序员直接释放内存; D.内存回收程序可以在指定得时间释放内存对象 解答:B 5.一个Java源文件中最多只能有多少个public类。 ?A、1个?B、2个

C、3个? D、任意多个 解答:A 6。下面哪一个不就是Java语言所具有得特点。 A、没有全局变量,在类得定义外部没有任何得变量定义; ?B、不直接支持指针操作,而使用更安全得引用类型; C、支持子类对父类得多继承; D、具有自动垃圾收集功能; 解答:C 7。下面哪一个不就是Java开发工具包JDK得组成部分. ?A、Java得编译器; B、Java得解释器;? ?C、Java得API继承类库; ?D、Eclipse开发工具; 解答:C 8。JDK提供得编译器就是()。 ?A、java、exe???B、javac、exe C、javap、exe??? D、javaw、exe 解答:B 9。作为Java应用程序入口得main方法,其声明格式可以就是() A、public voidmain(String[]args) B、public static void main(String []args) C、public static void Main(String* args) D、public int main(String []args) 解答:B 10.下列说法正确得就是( A ) A、JAVA程序得main方法必须写在类里面 B、JAVA程序中可以有多个main方法 C、JAVA程序中类名必须与文件名一样 D、JAVA程序得main方法中如果只有一条语句,可以不用{}(大括号)括起来 11。下列哪些语句关于Java内存回收得说明就是正确得? ( B) A、程序员必须创建一个线程来释放内存

VB程序设计考试题库——考试专用

1、题目:(事件)单击窗体(响应)用输入框输入一自然数,判断就是"正数”、"负数或"零”,并根据输入得数用消息框显示”正数"、”负数”或”零". 2、题目:(事件)单击窗体。(响应)求200~300之间既能被3整除又能被7整除得数.并求出所有数之与存入变量SUM中 3、题目:单击窗体。(响应)已知S=1+1/4+1/9+1/16+1/25+…+1/100,结果输出在窗体上。 4、题目:(事件)单击窗体.(响应)在窗体上打印数列2/1,3/2,5/3,8/5,13/8…得前10项,并求其与,将与保存在变量s中。 5、题目:(事件)双击窗体。(响应)把一元钞票换成一分、二分与五分得硬币每种至少有一枚),求出其所有得换法,把结果输出在窗体上。将所有得换法得数目存入变量N中 6、题目:单击窗体。)求1!+2!+3!+4!+5!并将结果输出到窗体上。结果存入变量S中 7、题目:(事件)单击窗体。(响应)生成一个一维数组(10个数组元素依此为: ' 15、23、72、43、96、23、3、65、88、17 写程序求出这个数组中得最大值、最小值与平均值,并输出在窗体上。将最大值,最小值,平均值分别存入变量Max,Min,Aver中 8、题目:(事件)单击窗体。(响应)在窗体上输出100~200之间得所有合数。求出所有数之与存入SUM中所谓合数就是指自然数中能被1与本数整除以外,还能被其她数整除得数。 9、题目:(事件)单击窗体.(响应)求10~20之间所有素数得乘积并输出在窗体上。将结果存入变量L中。 10、题目:(事件)单击窗体。(响应)求1- 1/2+1/3 -1/4 +……+ 1/99-1/100得值。将结果存入变量J中。 1题 n = InputBox("输入一个自然数”) If n >0 Then result = ”正数" ElseIf n < 0 Then result = ”负数" ElseIf n = 0 Then result ="零" End If MsgBox "输入得数据”& n&”为:”& result 2题 Dim i As Integer For i = 201 To 300 If ((i Mod 3) = 0) And((i Mod 7) = 0) Then Print (CStr(i)) sum = sum + i End If Next Print sum 3题 DimiAs Integer s = 0 For i = 1 To 10 s = s + 1 / (i ^ i) Next Print (s) 4题 Dim i,j, k, m As Integer s = 0 :i = 2:j = 1 For k = 1 To 10 s = s +i / j m= j Print (CStr(i)) & "/" &CStr(j) j = i i = i + m Next 5题 Dim i, j,kAsInteger For i = 1 To 100 For j = 1 To 50 For k = 1 To 20 If ((i + 2 *j + k * 5)= 100) Then Print (CStr(i)) Print (CStr(j)) Print(CStr(k)) n =n + 1

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

2019年全国计算机二级考试试题题库(附答案)一、选择题((1)-(40)每小题1分,(41)-(50)每小题2分,共60分) 下列各题 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) (11011001)2 B) (37)8 C) (75)10 D) (2A)16 (6) 二进制数1110111.11转换成十六进制数是 A) 77.C B) 77.3 C) E7.C D) E7.3 (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键

面向对象程序设计考试题库

面向对象程序设计期末综合练习一(单选题) 单选题 1. C++源程序文件的缺省扩展名为( )。 A. cpp B. exe C. obj D. lik 2. 由C++源程序文件编译而成的目标文件的缺省扩展名为( )。 A. cpp B. exe C. obj D. lik 3. 由C++目标文件连接而成的可执行文件的缺省扩展名为( )。 A. cpp B. exe C. obj D. lik 4. 编写C++程序一般需经过的几个步骤依次是( )。 A. 编译、编辑、连接、调试 B. 编辑、编译、连接、调试 C. 编译、调试、编辑、连接 D. 编辑、调试、编辑、连接 5. 以下标识符中不全是保留字的是( )。 A. case for int B. default then while C. bool class long D. goto return char 6. 能作为C++程序的基本单位是( )。 A. 字符 B. 语句 C. 函数 D. 源程序文件 7. 程序中主函数的名字为( )。 A. main B. MAIN C. Main D. 任意标识符 8. C++程序的基本模块为( )。 A. 表达式 B. 标识符 C. 语句 D. 函数 9. 可用作C++语言用户标识符的一组标识符是( )。 A. void define +WORD B. a3_b3 _123 YN C. for -abc Case D. 2a DO sizeof 10. 存储以下数据,占用存储字节最多的是( )。 A. 0 B. …0? C. “0” D. 0.0 11. 程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用( )符号作为分隔符。 A. 空格或逗号 B. 逗号或回车 C. 逗号或分号 D. 空格或回车 12. 设”int a=12;”,则执行完语句”a+=a*a;”后,a 的值是( )。 A. 12 B. 144 C. 156 D. 288 13. 假设在程序中 a 、b 、c 均被定义成整型,所赋的值都大于1,则下列能正确表示代数式abc 1的表达式是( )。 A. 1.0/a*b*c B. 1/(a*b*c) C. 1/a/b/(float)c D. 1.0/a/b/c 14. 设”int a=15,b=26;”,则”cout<<(a,b);”的输出结果是( )。 A. 15 B. 26,15 C. 15,26 D. 26

大学《java程序设计》考试题库及答案

若有定义int a=2,b=2; 则表达式(a++)+(++b) 的值是( )。 A. 5 监听器接口的方法返回值的类型是()。C. void 在浏览器中执行applet 程序,以下选项中的哪个方法将被最先执行()。 D. init() 以下哪个不是Java的原始数据类型() B. Boolean 向Applet传递参数的正确描述是()。C. C. PARAM name="age,value=20" 阅读下列代码; public class Test{ String s="One World One Dream"; public static void main(String args[]){ System.out.println(s); } } 其运行结果是_ C. 编译时出错//除非创建Text类的对象 如果容器组件p的布局是BorderLayout,则在p的下边中添加一个按钮b,应该使用的语句是()。 A. p.add(b,"South"); 编译和运行下面的应用程序,并在命令行界面输入12345 ,则回车后屏幕输出的结果是( )。public class A { public static void main(String args[]) throws IOException{ BufferedReader buf=new BufferedReader( new I nputStreamReader(System.in)); String str=buf.readLine(); int x=Integ er.parseInt(str); System.out.println(x/100); } } B. 123 构造函数何时被调用?() B. 创建对象时 以下哪项可能包含菜单条()。 D. Frame

C语言程序设计考试题库

一、判断题 1、所谓常量,就是在程序运行过程中其值可以改变的量。() 2、一个C程序可以由多个源程序文件构成,但其中只能有一个main()函数。() 3、在C语言中do-while 语句和for循环均是先执行循环体语句,再判断表达式。() 4、在函数调用中将变量的地址作为实参传递给对应形参时,实现的是单向的值传递。() 5、C语言中所有字符串都是以‘\0’结束的。() 6、do-while构成的循环语句中的循环体最少执行1次。() 7、数组名在C语言中表示的是数组的首地址。() 8、使用gets()函数输入字符串时可以在字符串中输入空格。() 9、算术运算符中‘/’的优先级高于‘%’。() 10、char a[5];该语句表明数组a中的第五个元素为a[5]。() 11、C语言源程序文件的扩展名均为.c。() 12、char a[5];数组a中有a[1]、a[2]、a[3]、a[4]、a[5]共5个元素。() 13、C语言程序区分大小写,字符常量必须定义为大写。() 14、若int i=10,j=2;则执行i*=j+8;后i的值为28。() 15、若int x=100,y=200;则语句printf("%d",(x,y));输出结果为100。() 16、c语言中的标识符只能由字母,数字和下划线三种字符组成。() 17、函数getchar()的作用是:输出一个字符。() 18、一个C语言程序总是从第一个函数开始执行。() 19、在c语言中,char型数据在内存中是以ASCII码形式存储的。() 20、在C语言中switch语句必须使用break语句。() 二、选择题 1、以下说法正确的是()。 A、C语言程序总是从第一个函数开始执行。 B、C语言程序中要调用的函数必须在main()函数中定义。 C、C语言程序总是从main()函数开始执行。

全国计算机二级MS Office选择题题库

(1)下列关于栈和队列的描述中,正确的是() A)栈是先进先出 B)队列是先进后出 C)队列允许在队友删除元素 D)栈在栈顶删除元素 答案:D 解析:栈实际也是线性表,只不过是一种特殊的线性表。栈是只能在表的一端进行插入和删除运算的线性表,通常称插入、删除的这一端为栈顶,另一端为栈底。队列是只允许在一端删除,在另一端插入的顺序表,允许删除的一端叫做队头,允许插入的一端叫做队尾。 (2) 已知二叉树后序遍历序列是CDABE,中序遍历序列是CADEB,它的前序遍历序列是() A)ABCDE B)ECABD C)EACDB D)CDEAB 答案:C 解析:由于后序遍历的最后一个元素为E,所以E为根结点,所以它的前序遍历的首个元素为E,故排除A)和D)选项。由于中序遍历中,元素B在元素根结点E的后面,所以B 为二叉树的右子树,并且该二叉树右子树只有一个元素,所以前序遍历的最后一个元素应为B,故选项C)为正确选项,即该二叉树的前序遍历序列是EACDB。 (3)在数据流图中,带有箭头的线段表示的是() A)控制流 B)数据流 C)模块调用 D)事件驱动 答案:B 解析:数据流图中带箭头的线段表示数据流,沿箭头方向传递数据的通道,一般在旁边标注数据流名。 (4)结构化程序设计的3种结构是() A)顺序结构,分支结构,跳转结构 B)顺序结构,选择结构,循环结构 C)分支结构,选择结构,循环结构 D)分支结构,跳转结构,循环结构 答案:B 解析:程序设计语言仅仅使用顺序、选择和重复(循环)三种基本控制结构就足以表达出各种其他形式结构的程序设计方法。遵循程序结构化的设计原则,按结构化程序设计方法设计出的程序易于理解、使用和维护;可以提高编程工作的效率,降低软件的开发成本。 (5)下列方法中,不属于软件调试方法的是() A)回溯法 B)强行排错法 C)集成测试法

全国计算机二级选择题题库

精心整理 第一套 1、下列叙述中正确的是()。 栈是“先进先出”的线性表 队列是“先进后出”的线性表 循环队列是非线性结构 有序线性表既可以采用顺序存储结构,也可以采用链式存储结构 正确答案:D 答疑:【解析】栈是先进后出的线性表,所以A错误;队列是先进先出的线性表,所以B错误;循环队列是线性结构的线性表,所以C错误。 2、支持子程序调用的数据结构是()。 栈 树 队列 二叉树 正确答案:A 答疑:【解析】栈支持子程序调用。栈是一种只能在一端进行插入或删除的线性表,在主程序调用子函数时要首先保存主程序当前的状态,然后转去执行子程序,最终把子程序的执行结果返回到主程序中调用子程序的位置,继续向下执行,这种调用符合栈的特点,因此本题的答案为A。 3、二叉树有5个度为2的结点,则该二叉树中的叶子结点数是()。 10

8 6 4 正确答案:C 答疑:【解析】根据二叉树的基本性质3:在任意一棵二叉树中,度为0的叶子节点总是比度为2的节点多一个,所以本题中是5+1=6个。 4、下列排序方法中,最坏情况下比较次数最少的是()。 冒泡排序 简单选择排序 直接插入排序 堆排序 正确答案:D 答疑:【解析】冒泡排序与简单插入排序与简单选择排序法在最坏情况下均需要比较n(n-1)/2次,而堆排序在最坏情况下需要比较的次数是 。 5、软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是()。 编译程序 操作系统 教务管理系统 汇编程序

正确答案:C 答疑:【解析】编译软件、操作系统、汇编程序都属于系统软件,只有C教务管理系统才是应用软件。 6、下面叙述中错误的是() 软件测试的目的是发现错误并改正错误 对被调试的程序进行“错误定位”是程序调试的必要步骤 程序调试通常也称为Debug 软件测试应严格执行测试计划,排除测试的随意性 正确答案:A 答疑:【解析】软件测试的目的是为了发现错误而执行程序的过程,并不涉及改正错误,所以选项A错误。程序调试的基本步骤有:错误定位、修改设计和代码,以排除错误、进行回归测试,防止引进新的错误。程序调试通常称为Debug,即排错。软件测试的基本准则有:所有测试都应追溯到需求、严格执行测试计划,排除测试的随意性、充分注意测试中的群集现象、程序员应避免检查自己的程序、穷举测试不可能、妥善保存测试计划等文件。 7、耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是()。 提高耦合性降低内聚性有利于提高模块的独立性 降低耦合性提高内聚性有利于提高模块的独立性 耦合性是指一个模块内部各个元素间彼此结合的紧密程度 内聚性是指模块间互相连接的紧密程度 正确答案:B 答疑:【解析】模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性,所以A错误,B正确。耦合性是模块间互相连接的紧密程度的度量而内聚性是指一个模块内部各个元素间彼此结合的紧密程度,所以C与D错误。 8、数据库应用系统中的核心问题是()。 数据库设计

程序设计题库

1、程序设计】 -------------------------------------------------- 功能:用辗转相除法求两个整数的最大公约数。 ------------------------------------------------*/ #include "stdio.h" int gcd(int n,int m) { /*********Begin**********/ int r,t; if(n= 'a') *c +='A'-'a'; return 0;

程序设计题库

实训三 21、声明double a; int b;哪些选项中的表达式能够正确的进行类型转换? A. a = b B. a = (decimal)b C. a = (int)b D. b = a 22、从下列选项中,选出变量result 的返回值是false 的表达式? A. bool result = (1 = 1) B. bool result = (4 == 5) C. bool result = (1 != 1) D. bool result = 0; 23、设置int a = 3。从以下选项中,选出所有变量result 的值为true 的表达式? A. bool result = !(a++ > 3) B. bool result = (++a > 3) C. bool result = (a++ >= 3) D. bool result = (~a == -4)

24、声明int32 a = 3,经过运算int32 b = a | 0xFFFFFFFF,变量 b 的最终值为? A. -1 B. 4294967295 C. 0 D. 无法编译通过 25、以下表达式中,哪些表达式的最终结果为-1? A. 2 << 1 | -5 B. 3 –6 / 3 C. (float) (-1 / 1) D. ~6 % 3 26、下列关于“||”运算符的描述中,哪些 是正确的? A. “||”运算符执行短路计算。 B. “||”运算符不是关键字。 C. “||”运算符是一种比较运算符。 D. 在使用“||”运算符的运算中,如果结果为真,则运算符左右两边的操作数都为真。

VB程序设计考试题库考试专用

程序设计题 1、题目:(事件)单击窗体(响应)用输入框输入一自然数,判断是"正数"、"负数或"零",并根据输入的数用消息框显示"正数"、"负数”或"零"。 2、题目:(事件)单击窗体。(响应)求200~300之间既能被3整除又能被7整除的数。并求出所有数之和存入变量SUM中 3、题目:单击窗体。(响应)已知S=1+1/4+1/9+1/16+1/25+…+1/100,结果输出在窗体上。 4、题目:(事件)单击窗体。(响应)在窗体上打印数列2/1,3/2,5/3,8/5,13/8…的前10项,并求其和,将和保存在变量s中。 5、题目:(事件)双击窗体。(响应)把一元钞票换成一分、二分和五分的硬币每种至少有一枚),求出其所有的换法,把结果输出在窗体上。将所有的换法的数目存入变量N中 6、题目:单击窗体。)求1!+2!+3!+4!+5!并将结果输出到窗体上。结果存入变量S中 7、题目:(事件)单击窗体。(响应)生成一个一维数组(10个数组元素依此为: ' 15、23、72、43、96、23、3、65、88、17 写程序求出这个数组中的最大值、最小值和平均值,并输出在窗体上。将最大值,最小值,平均值分别存入变量Max,Min,Aver 中 8、题目:(事件)单击窗体。(响应)在窗体上输出100~200之间的所有合数。求出所有数之和存入SUM中所谓合数是指自然数中能被1和本数整除以外,还能被其他数整除的数。 9、题目:(事件)单击窗体。(响应)求10~20之间所有素数的乘积并输出在窗体上。将结果存入变量L中。 10、题目:(事件)单击窗体。(响应)求1 - 1/2 + 1/3 - 1/4 + …… + 1/99 - 1/100的值。将结果存入变量J中。 1题 n = InputBox("输入一个自然数") If n > 0 Then result = "正数" ElseIf n < 0 Then result = "负数" ElseIf n = 0 Then result = "零" End If MsgBox "输入的数据" & n & "为:" & result 2题 Dim i As Integer For i = 201 To 300 If ((i Mod 3) = 0) And ((i Mod 7) = 0) Then Print (CStr(i)) sum = sum + i End If Next Print sum 3题 Dim i As Integer s = 0 For i = 1 To 10 s = s + 1 / (i ^ i) Next Print (s) 4题 Dim i, j, k, m As Integer s = 0 :i = 2:j = 1 For k = 1 To 10 s = s + i / j m = j Print (CStr(i)) & "/" & CStr(j) j = i i = i + m Next 5题 Dim i, j, k As Integer For i = 1 To 100 For j = 1 To 50 For k = 1 To 20 If ((i + 2 * j + k * 5) = 100) Then Print (CStr(i)) Print (CStr(j)) Print (CStr(k)) n = n + 1 End If Next Next Next 6题 Dim i, j, k As Integer For i = 1 To 5 k = 1 For j = 1 To i

全国计算机二级考试试题题库

全国计算机二级考试试题题库(附答案) 一、选择题((1)-(40)每小题1分,(41)-(50)每小题2分,共60分) 下列各题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)按A C 键C)按Ctrl+Alt+Del 键D)按A H 键 (11)现要从软盘启动DOS软盘中已存有DOS系统),设有如下一些操作:①打开计算机电源; ②将该软盘插入A驱动器;③关好A驱动器门。则冷启动的操作顺序应为 A)①T②T③ B)③T②T①C)②T①T③ D)②T③T① (12)设当前盘中某一文件路径为,当前目录为\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)启动盘的根目录中

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

2019年全国计算机二级考试试题题库(附答案) 一、选择题((1)-(40)每小题1分,(41)-(50)每小题2分,共60分) 下列各题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) (11011001)2 B) (37)8 C) (75)10 D) (2A)16 (6) 二进制数1110111.11转换成十六进制数是 A) 77.C B) 77.3 C) E7.C D) E7.3

(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)按A C 键C)按Ctrl+Alt+Del 键D)按A H 键 (11) 现要从软盘启动DOS软盘中已存有DOS系统),设有如下一些操作:①打开计算机电源;②将该软盘插入A驱动器;③关好A驱动器门。则冷启动的操作顺序应为 A)①T②T③ B)③T②T①C)②T①T③ D)②T③T① (12) 设当前盘中某一文件路径为\A\C\B\ABC.C,当前目录为\A。下列命令中错误的是 A) CD.. B) RD \A\C\B C) TYPE \A\C\B\ABC.C D) TYPE C\B\ABC.C (13) 设当前盘中的根目录下有一子目录AB在子目录AB下有一文件PQ.BAS现要查看文件PQ.BAS的内容,应使用命令 A) TYPE \AB PQ.BAS B) TYPE \AB\PQ.BAS C) TYPE \PQ.BAS D) DIR \AB\PQ.BAS (14) 自动批处理文件必须放在 A) C盘根目录中B) A盘根目录中

历年全国计算机等级考试-二级C语言上机考试题库及答案

1.填空 给定程序的功能是调用fun函数建立班级通讯录。通讯录中记录每位学生的编号,姓名和电话号码。班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为myfile5.dat的二进制文件中。 请在程序的下划线处填入正确的内容并把下划线删除,是程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.c中 不得增行或删行,也不得更改程序的结构! void check(); /**********found**********/ int fun(___1___ *std) { /**********found**********/ ___2___ *fp; int i; if((fp=fopen("myfile5.dat","wb"))==NULL) return(0); printf("\nOutput data to file !\n"); for(i=0; i

全国计算机二级考试试题题库

全国计算机二级考试试题题库(附答案) 一、选择题((1)-(40)每小题1分,(41)-(50)每小题2分,共60分) 下列各题 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) 启动盘的根目录中

《C语言程序设计》题库及答案

《C语言程序设计》复习题库 1、计算下面公式的值。T=1/1!+1/2!+1/3!+……+1/m! 当m=5时的结果(按四舍五入保留3位小数)。(注:所有变量用float数据类型定义!)答案:1.717 2、程序填空:用*号输出字母C的图案。 #include "stdio.h" #include "conio.h" main() { _____________ printf(" *\n"); _____________ _____________ getch(); } 3、8232和9678,它们的个、十、百、千各位数字之和是15的倍数,8+2+3+2=15,9+6+7+8=30。编写程序,求四位数的所有奇数中,这样的数(各位数字之和是15的倍数)的总和。(注:所有变量用long数据类型定义!) 答案:1533459 4、/*下面程序的功能是:计算并输出700以内的最大的10个能被13或者17整除的自然数之和。请改正程序中的错误,并运行,最后给出程序运行的正确结果。(注:只有一处错误!)*/ 答案:6591 #include void main() { int total=0, mc=1, k=700; int pm[10],count=0; while( (k>=2) && mc<=10 ) { if ((k%13==0) || (k%17==0)) { pm[mc] = k; mc++; } k--; } for( k=1;k<=10;k++ ) total += pm[k-1]; printf(" %d\n",total); } 5、求x = 1+1/5+1/7+1/9+…的近似值,直到最后一项的绝对值小于10-5为止。 6、计算如下公式的A20值。 A1=1, A2=1/(1+A1), A3=1/(1+A2), A4=1/(1+A3), ......(按四舍五入保留10位小数)。答案:0.6180339850 7、求[10,1600]之间能被7整除的奇数之和。答案:90965

相关文档
最新文档