c语言上机考试题库(c语言上机考试题库电子版)

时间:2023-03-13 20:30来源:考试资源网 考试资料网
c语言上机考试题库(c语言上机考试题库电子版)

c语言上机考试题库(c语言上机考试题库电子版)

admin2周前免费1

急求2010 计算机二级C语言上机题库

说明:修改或填空内容在相应位置后用红色标识

1.在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:将字符串s中所有的字符'c'删除。

#include stdio.h

void main()

{ char s[80];

int i,j;

gets(s);

for(i=j=0;____ 1_ ____;i++) s[i]!=’\0’

if(s[i] != 'c')

{ s[j]=s[i];

______2______ j++;}

s[j]='\0';

puts(s);

}

2.在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:输入三个整数,按由小到大的顺序输出这三个数。

#include stdio.h

void swap(______1______) int *pa,int *pb

{ /*交换两个数的位置*/

int temp;

temp = *pa;

*pa = *pb;

*pb = temp;

}

void main()

{

int a,b,c,temp;

scanf("%d%d%d",a,b,c);

if(ab)

swap(a,b);

if(bc)

swap(b,c);

if(______2______) ab

swap(a,b);

printf("%d,%d,%d",a,b,c);

}

3.在考生目录的Paper子目录下,有Modify.c文件,该文件中“***** N *****”的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能: 输入一个字符串,将组成字符串的所有字符先按顺序存放到字符串t中,再将字符串中的字符按逆序连接到字符串t * 后面。例如:输入"ABCD",则字符串t为"ABCDDCBA"。

# include stdio.h

# include string.h

void fun(char *s,char *t)

{

int i,sl;

sl=strlen(s);

for(i=0;isl;i++)

t[i]=s[i];

for(i=0;isl;i++)

/********1********/

t[sl+i]=s[sl-i]; 改为:t[sl+i]=s[sl-i-1];

/********2********/

t[sl]="\0"; 改为:t[2*sl]=’\0’;

}

void main()

{

char s[100],t[100];

scanf("%s",s);

fun(s,t);

printf("%s",t);

}

4.在考生目录的Paper子目录下,有Modify.c文件,该文件中“***** N *****”的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:

输入一个字符串,将组成字符串的所有非英文字母的字符删除后输出。

例如:输入"abc123+xyz.5",应输出"abcxyz"。

#include stdio.h

#include string.h

void main()

{

char str[256];

int i,j,k=0,n;

gets(str);

n=strlen(str);

for(i=0;in;i++)

/********1********/

if (tolower(str[i])'a' || tolower(str[i])'z') 改为:tolower(str[i])='a' tolower(str[i])='z'

{

/********2********/

str[n]=str[i]; n++; 改为:str[k]=str[i]; k++;

}

str[k]='\0';

printf("%sn",str);

}

5.在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:调用函数f计算代数多项式 1.1+2.2*x+3.3*x*x+4.4*x*x*x+5.5*x*x*x*x

当x=1.7时的值。

#include stdio.h

float f(float,float*,int);

void main()

{ float b[5]={1.1,2.2,3.3,4.4,5.5};

printf("%fn",f(1.7,b,5));

}

float f( _______1________ ) float x,float a[],int n

{ float y=a[0],t=1; int i;

for(i=1;in;i++) { t=t*x; y=y+a[i]*t; }

_____2_____ return y;

}

6.在考生目录的Paper子目录下,有Modify.c文件,该文件中“***** N *****”的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:

将输入的十进制整数n通过函数DtoH转换为十六进制数,并将转换结果以字符串形式输出。 例如:输入十进制数79,将输出十六进制4f。

# include stdio.h

# include string.h

char trans(int x)

{

if(x10) return '0'+x;

/********1********/

else return 'a'+x; 改为:else return 'a'+x-10;

}

int DtoH(int n,char *str)

{

int i=0;

while(n!=0)

{

str[i]=trans(n%16);

/********2********/

n%=16; 改为:n/=16;

i++;}

return i-1;

}

void main()

{

int i,k,n;

char *str;

scanf("%d",n);

k=DtoH(n,str);

for (i=0;i=k;i++) printf("%c",str[k-i]);

}

7.在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:数列的第1、2项均为1,此后各项值均为该项前二项之和。计算数列第30项的值。

#include stdio.h

_______1______ long f(int n);

void main()

{

printf("%ldn",f(30));

}

long f(int n)

{

if( ______2______ ) n==1||n==2

return 1;

else

return f(n-1)+f(n-2);

}

8.在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:输入1个整数后,输出该数的位数(若输入3214则输出4,输入-23156则输出5)。

#include stdio.h

void main()

{ int n,k=0;

scanf("%d",n);

while( _____1_____ ) n!=0

{

k++;

_____2_____; n/=10

}

printf("%dn",k);

}

9.在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:调用函数f,从字符串中删除所有的数字字符。

#include stdio.h

#include string.h

#include ctype.h

void f(char *s)

{ int i=0;

while(s[i]!='\0'){

if(isdigit(s[i])) ____1____(s+i,s+i+1); strcpy

___2___ i++;} else

}

void main()

{ char str[80];

gets(str); f(str); puts(str);

}

10.在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:分别统计字符串中英文字母、数字和其他字符出现的次数。

#include stdio.h

#include ctype.h

void main()

{ char a[80]; int n[3]={0},i; gets(a);

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

{if (tolower(a[i])='a' tolower(a[i])='z') /*统计字母个数*/

n[0]++;

else if (________2________) /*统计数字个数*/ a[i])='0' a[i] ='9'

n[1]++;

else

n[2]++;

}

for(i=0;i3;i++) printf("%dn",n[i]);

}

11.在考生目录的Paper子目录下,有Modify.c文件,该文件中“/***** N ***** /”的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:运行时若输入a、n分别为3、6,则输出下列表达式的值:

3+33+333+3333+33333+333333

#include stdio.h

void main()

{ int i,a,n; long t=0;

/********* 1 *******/

s=0; 改为:long s=0;

scanf("%d%d",a,n);

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

/******* 2 ******/

t=t*10+i; 改为:t=t*10+1;

s=s+t;

}

s=s*a;

printf("%ldn",s);

}

12.在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:求输入的整数各位数字之和,如输入234则输出9,输入-312则输出6。

#include stdio.h

#include math.h

void main()

{

int n,s=0;

scanf("%d",n);

______ 1 ______n=n0?n:-n;

while(n!=0) {

______ 2 ______s+=n%10;

n=n/10;

}

printf("%dn",s);

}

13.在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:

找出100~999之间所有的Armstrong数。所谓Armstrong数是指这个3位数各位上数字的立方和等于自身。例如:371=3*3*3+7*7*7+1*1*1,那么371就是Armstrong数。

#include stdio.h

#includemath.h

void main()

{

int i,a,b,c;

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

{

a=i/100;

_______1_______ b=(i/10)%10;

c=i%10;

if (________2________) i==a*a*a+b*b*b+c*c*c

printf("%d is a Armstrong number!n",i);

}

}

14.在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:输入的一个小写字母,将字母循环后移5个位置后输出,如’a’变成’f’, ‘w’变成’b’。

#include stdio.h

void main()

{

char c;

c=getchar();

if(______1______) c='a' c='u'

c=c+5;

else

if (c='v' c='z')

______2______ c=c-21;

putchar(c);

}

15.在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:对x=1,2,...,10,求f(x)=x*x-5*x+sin(x)的最大值。

#include stdio.h

#include math.h

#define f(x) x*x-5*x+sin(x)

void main()

{ int x; float max;

______1______ max=f(1);

for(x=2;x=10;x++)

______2______ if(f(x)max)max=f(x);

printf("%fn",max);

}

16.在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:调用函数f,将1个整数首尾倒置,若程序输入12345,则输出54321;

若程序输入-34567,则输出-76543。

#include stdio.h

#include math.h

long f(long n)

{ long m,y=0; m=fabs(n);

while(m!=0) {

y=y*10+m%10;

____1____ m/=10;

}

if(n=0) return y;

else _____2_____ return -y;

}

void main()

{

printf("%ldt",f(12345)); printf("%ldn",f(-34567));

}

17.在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能: 求出a中各相邻两个元素的和,并将这些和存放在数组 b中,按每行3个元素的形式输出。例如: b[1]=a[1]+a[0],…………,b[9]=a[9]+a[8]。

#include stdio.h

void main()

{

int a[10],b[10],i;

printf("nInput 10 numbers: ");

for (i=0; i10;i++) /* 数组输入 */

scanf("%d", a[i]);

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

b[i]=______1______; b[i]=a[i]+a[i-1] /* 计算b数组中的元素 */

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

{

printf("%3d",b[i]);

if (______2______) printf("n"); i%3==0 /* 每行打印3个数据 */

}

}

18.在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:输入m、n(要求输入数均大于0),输出它们的最大公约数。

#include stdio.h

void main()

{ int m,n,k;

while(scanf("%d%d",m,n), _______1______ ); m=0||n=0

for( ____2____; n%k!=0||m%k!=0; k--); k=mn?n:m

printf("%dn",k);

}

19.在考生目录的Paper子目录下,有Modify.c文件,该文件中“/***** N ***** /”的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:输入x和正数eps,计算多项式1-x+x*x/2!-x*x*x/3!+...的和直到末项的绝对值小于eps为止。

#include stdio.h

#include math.h

void main()

{ float x,eps,s=1,t=1,i=1;

scanf("%f%f",x,eps);

do {

/***** 1 *****/

t=t*x/++i; 改为:t= -t*x/i++;

s+=t;

/***** 2 *****/

} while(fabs(t)eps) 改为:while(fabs(t)=eps) ;

printf("%fn",s);

}

*20.在考生目录的Paper子目录下,有Modify.c文件,该文件中“/***** N ***** /”的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:用选择法对10个整数按升序排序。

#include stdio.h

#define N 10

void main()

{

int i,j,min,temp;

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

printf("nThe array is:n"); /* 输出数组元素 */

for (i=0;iN;i++)

printf("%5d",a[i]);

for (i=0;iN-1;i++) /* 排序操作 */

{

min = i;

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

/****** 1 ******/

if (a[min]=a[j]) min =j; 改为:if (a[min]=a[j]) {

/****** 2 ******/

temp=a[min]; a[min]=a[j]; a[j]=temp; /*数据交换*/ 改为:temp=a[min]; a[min]=a[j]; a[j]=temp;}

}

printf("nThe sorted numbers: n"); /* 输出排序结果 */

for (i=0;iN;i++)

printf("%5d",a[i]);

printf("n");

}

*27.在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:调用函数f,求二维数组a中全体元素之和。

#include stdio.h

float f(_______1______) float **x,int m,int n

{ float y=0; int i,j;

for(i=0;im;i++) for(j=0;jn;j++) y=y+*(*(x+i)+j);

return y;

}

void main()

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

int i;

for(i=0;i3;i++)_______2______ b[i]=a[i];

printf("%.2fn",f(b,3,4));

}

2、在考生文件夹的Paper子文件夹下已有Modify1.c文件。

该文件中"____ N ____"是根据程序功能需要填充部分,请完成程序填充。

(注意:不得加行、减行、加句、减句,否则后果自负)。

程序功能:该程序计算四位学生的平均成绩,保存在结构中,然后列表输出这些学生

的信息。

#include stdio.h

struct STUDENT

{

char name[16];

int math;

int english;

int computer;

int average;

};

void GetAverage(struct STUDENT *pst) /* 计算平均成绩 */

{

int sum=0;

sum = ______1______; pst- math+ pst- english + pst- computer

pst-average = sum/3;

}

void main()

{

int i;

struct STUDENT st[4]={{"Jessica",98,95,90},{"Mike",80,80,90},

{"Linda",87,76,70},{"Peter",90,100,99}};

for(i=0;i4;i++)

{

GetAverage(______2______); st[i]

}

printf("NametMathtEnglishtComputAveragen");

for(i=0;i4;i++)

{

printf("%st%dt%dt%dt%dn",st[i].name,st[i].math,st[i].english,

st[i].computer,st[i].average);

}

}

程序调试题(2)

说明:修改或填空内容在相应位置后用红色标识

*21.在考生目录的Paper子目录下,有Modify.c文件,该文件中“/***** N ***** /”的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:输入n以及小于n个字符的字符串,将字符串中所有小写字母改为相应的大写字母后,输出该字符串。

#include stdio.h

#include string.h

#include stdlib.h

void main()

{ int n,i;

/***** 1 *****/

char str; 改为: char *str;

scanf("%dn",n); str=(char*)malloc(n); gets(str);

/***** 2 *****/

for(i=1;istrlen(str);i++) 改为:for(i=0;istrlen(str);i++)

if(str[i]='a' str[i]='z') str[i]=str[i]-('a'-'A');

puts(str);

}

*22.在考生目录的Paper子目录下,有Modify.c文件,该文件中“/***** N ***** /”的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:将一个char型数的高4位和低4位分离,分别输出,如22(二进制:00010110)输出为1和6。

#include stdio.h

void main()

{

char a,b1,b2,c;

scanf("%d",a);

/****** 1 ******/

b1=a4; 改为:b1=a4; /*b1存放高4位*/

c=~(~04);

/****** 2 ******/

b2=a|c; 改为:b2=ac; /*b2存放低4位*/

printf("%d,%d",b1,b2);

}

*23.在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:调用函数f用以求1元2次方程 x*x+5*x-2=0 的实根。

#include stdio.h

#include math.h

int f(_______1______) float *x1,float *x2, float a, float b, float c

{ if(b*b-4*a*c0) return 1;

*x1=(-b+sqrt(b*b-4*a*c))/2/a;

*x2=(-b-sqrt(b*b-4*a*c))/2/a;

_______2______

}

void main()

{ float u1,u2; float a=1,b=5,c=-2;

if(f(_______3______)==1) u1,u2,a,b,c

printf("实数范围内无解n");

else printf("%.2f%.2fn",u1,u2);

}

*24.在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:函数f将数组循环左移k个元素,数组x[7]调用函数f后的输出结果为:4 5 6 7 1 2 3

#include stdio.h

void f(int *a,int n,int k)

{ int i,j,t;

for(i=0;ik;i++) {

_______1______ t=a[0];

for(_______2______) j=1;jn-1;j++

a[j-1]=a[j];

a[n-1]=t;

}

}

void main()

{ int i,x[7]={1,2,3,4,5,6,7};

f(x,7,3);

for(i=0;i7;i++) printf("%5d",x[i]); printf("n");

}

25.在考生目录的Paper子目录下,有Modify.c文件,该文件中“/***** N ***** /”的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:运行时输入n,输出n各位数字之和(如n=1308则输出12,n=-3204则输出9)。

#include stdio.h

#include math.h

void main()

{ int n,s=0;

scanf("%d",n);

n=fabs(n);

/******** 1 *******/

while(n0){ 改为:while(n0) {

s=s+n%10;

/******** 2 ******/

n=n%10; 改为:n=n/10;

}

printf("%dn",s);

}

26.在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:输入整数n(n0),求m使得 2的m次方小于或等于n、2的m+1次方大于或等于n。

#include stdio.h

void main()

{ int m=0,t=1,n;

while(_______1______); scanf(“%d’,n),n=0

while(!(t=nt*2=n)){

_______2______ t=t*2;

m++;

}

printf("%dn",m);

}

*27.在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N ____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:调用函数f,求二维数组a中全体元素之和。

#include stdio.h

float f(_______1______) float **x,int m,int n

{ float y=0; int i,j;

for(i=0;im;i++) for(j=0;jn;j++) y=y+*(*(x+i)+j);

return y;

}

void main()

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

int i;

for(i=0;i3;i++)_______2______ b[i]=a[i];

printf("%.2fn",f(b,3,4));

}

28.在考生目录的Paper子目录下,有Modify.c文件,该文件中“/***** N ***** /”的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。

该程序功能:输入n,再输入n个点的平面坐标,然后输出那些距离坐标原点不超过5的点的坐标值。

#include stdio.h

#include math.h

#include stdlib.h

void main()

{

int i,n;

/***** 1 *****/

struct axy { float x,y; } a; 改为:struct axy { float x,y; } *a;

scanf("%d",n);

a=(float*) malloc(n*2*sizeof(float));

for(i=0;in;i++)

/***** 2 *****/

scanf("%f%f",a[i].x,a[i].y); 改为:scanf("%f%f",a[i].x,a[i].y);

for(i=0;in;i++)

if(sqrt(a[i].x*a[i].x+a[i].y*a[i].y)=5)

printf("%f,%fn",a[i].x,a[i].y);

}

增加新题(程序调试题):

1、在考生文件夹的Paper子文件夹下已有Modify1.c文件。

该文件中"____ N ____"是根据程序功能需要填充部分,请完成程序填充。

(注意:不得加行、减行、加句、减句,否则后果自负)。

程序功能:调用函数f,去除数组中的负数,输入数组x[7],输出结果为:1 3 4 6

#include stdio.h

void f(int *a,int *m)

{ int i,j;

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

if(a[i]0) {

for(j=i--;j*m-1;j++) a[j]=a[j+1];

_____1_____; (*m)--

}

}

void main()

{ int i,n=7,x[7]={1,-2,3,4,-5,6,-7};

_______2_______; f(x,n)

for(i=0;in;i++) printf("%5d",x[i]);

printf("n");

}

2、在考生文件夹的Paper子文件夹下已有Modify1.c文件。

该文件中"____ N ____"是根据程序功能需要填充部分,请完成程序填充。

(注意:不得加行、减行、加句、减句,否则后果自负)。

程序功能:该程序计算四位学生的平均成绩,保存在结构中,然后列表输出这些学生

的信息。

#include stdio.h

struct STUDENT

{

char name[16];

int math;

int english;

int computer;

int average;

};

void GetAverage(struct STUDENT *pst) /* 计算平均成绩 */

{

int sum=0;

sum = ______1______; pst- math+ pst- english + pst- computer

pst-average = sum/3;

}

void main()

{

int i;

struct STUDENT st[4]={{"Jessica",98,95,90},{"Mike",80,80,90},

{"Linda",87,76,70},{"Peter",90,100,99}};

for(i=0;i4;i++)

{

GetAverage(______2______); st[i]

}

printf("NametMathtEnglishtComputAveragen");

for(i=0;i4;i++)

{

printf("%st%dt%dt%dt%dn",st[i].name,st[i].math,st[i].english,

st[i].computer,st[i].average);

}

}

3、在考生文件夹的Paper子文件夹下已有Modify1.c文件。

该文件中“/***** N ***** /”的下一行中有错误,请改正。

(注意:不得加行、减行、加句、减句,否则后果自负)。

程序功能:运行时输入n,输出n的所有质数因子。

(例如:n=13860,则输出2、2、3、3、5、7、11)

#include stdio.h

void main()

{ int n,i;

scanf("%d",n);

/****** 1 ******/

i=1; 改为: i=2;

while(n1)

if(n%i==0) {

printf("%dt",i);

n/=i;

}

else

/******** 2 *******/

n++; 改为: i++;

}

c语言上机试题

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

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

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

for(i-0;im;i++)

aver+=score[i];

aver/=m;

for(i=0,im;i++)

if(score[i]aver)

{below[k]=score[i];

k++;}

return k;}

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

2.void fun(int *a,int *n)

{int i,j=0;

for(i=2;i1000;i++)

if((i%7==0//i%11==0))i%77!=0)

a[j++]=i;

*n=j;}

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

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

{int i=1,j=0,k=0,*t=pp;

for(i=0;i=x;i++)

if(i%2!=0)

{t[j]=i;

j++;}

for(i=0;ij;i++)

if(x%t[i]==0)

{pp[k]=t[i];

k++;}

*n=k;}

4.请编写一个函数void fun(char *tt,int pp[]),统计在tt字符中"a"到"z"26各字母各自出现的次数,并依次放在pp所指的数组中。

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

{int i;

for(i=0;i26;i++)

pp[i]=0;

while (*tt)

{switch(*tt)

{case'a':pp[0]++;break;

case'b':pp[1]++;break;

case'c':pp[2]++;break;

case'd':pp[3]++;break;

case'e':pp[4]++;break;

case'f':pp[5]++;break;

case'g':pp[6]++;break;

case'h':pp[7]++;break;

case'i':pp[8]++;break;

case'j':pp[9]++;break;

case'k':pp[10]++;break;

case'l':pp[11]++;break;

case'm':pp[12]++;break;

case'n':pp[13]++;break;

case'o':pp[14]++;break;

case'p':pp[15]++;break;

case'q':pp[16]++;break;

case'r':pp[17]++;break;

case's':pp[18]++;break;

case't':pp[19]++;break;

case'u':pp[20]++;break;

case'v':pp[21]++;break;

case'w':pp[22]++;break;

case'x':pp[23]++;break;

case'y':pp[24]++;break;

case'z':pp[25]++;break;}

tt++;}

}

5.请编写一个函数void fun(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k各素数存入xx所指的数组中。

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

{int g=0,i,j,flag=1;

for(i=m+1;im*m;i++)

{for(j=2;ji;j++)

{if (i%j!=0)

flag=1;

else

{flag=0;

break;}

}

if (flag==1j=i)

{if (k0)

{xx[g++]=i;

k--;}

else

break;}}}

6.请编写一个函数void fun(char a[],char[],int n),其功能是:删除以各字符串中指定下标的字符。其中,a指向原字符串,删除后的字符串存放在b所指的数组中,n中存放指定的下标。

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

{int i,j=0;

for (i=0;iLEN;i++)

if(i!=n)

{b[j]=a[i];

j++;}

b[j]='\0';}

7.请编写一个函数int fun(int *s,int t,int *k),用来求除数组的最大元素在数组中的下标并存放在k所指的储存单元中。

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

{int i,max;

max=s[0];

for (i=0;it;i++)

if (s[i]max)

{max=s[i];

*k=i; }}

8.编写函数fun,功能是:根据以下攻势计算s,计算结果作为函数值返回;n通过形参传入。s=1+1/(1+2)+1/(1+2+3)+.......+1/(1+2+3+4+......+n)

8. float fun(int n)

{int i;

float s=1.0,t=1.0;

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

{t=t+i;

s=s+1/t;}

return s;}

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

9. p=m!/n!(m-n)!

float fun(int m,int n)

{float p,t=1.0;

int i;

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

t=t*i;

p=t;

for (t=1.0,i=1;i=n;i++)

t=t*i;

p=p/t;

for(t=1.0,i=1;im-n;i++)

t=t*i;

p=p/t;

return p;}

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。

10. folat fun()

{float x1=0.0,x0;

do

{x0=x1;

x1=cos(x0); }

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

return x1;}

11.下列程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数 fun(int a[][N]),该函数的功能是:使数组左下半三角元素中的值全部置成0。

11. int fun(int a[][N])

{int i,j;

for(i=0;iN;i++)

for(j=0;ji;j++)

a[i][j]=0;}

12.下列程序定义了N×N的二维数组,并在主函数中赋值。请编写函数fun,函数的功能使求出数组周边元素的平均值并作为函数值返回给主函数中的s。

12.double fun (int w[][N])

{int i,j,k=0;

double s=0.0;

for (j=0;jN;j++)

{s+=w[0][j];

k++;}

for (j=0;jN;j++)

{s+=w[N-1][j];

k++;}

for (i=1;i=N-2;i++)

{s+=w[i][0];

k++;}

return s/=k;}

13.请编写一个函数void fun(int tt[M][N],int pp[N]),tt指向一个M行N列的二维函数组,求出二维函数组每列中最小元素,并依次放入pp所指定一维数组中。二维数组中的数已在主函数中赋予。

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

{int i,j,min;

for (j=0;jN;j++)

{min=tt[0][j];

for (i=0;iM;i++)

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

min=tt[i][j];}

pp[j]=min;}}

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

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

{int i,j,s=0;

for (j=0;jN;j++)

{s+=a[0][j];

s+=a[M-1][j];}

for (i=1;i=M-2;i++)

{s+=a[i][0];

s+=a[i][N-1];}

return s;}

15.请编写一个函数unsigned fun(unsigned w),w使一个大于10的无符号整数,若w使n(n≥2)位的整数,则函数求出w后n-1位的数作为函数值返回。

15. unsigned fun(unsigned w)

{unsigned t,s=0,s1=1,p=0;

t=w;

while(t10)

{if(t/10)

p=t%10;

s=s+p*s1;

s1=s1*10;

t=t/10; }

return s;}

16.请编写一个函数float fun(double h),函数的功能使对变量h中的值保留2位小树,并对第三位进行四舍五入(规定h中的值位正数)。

16. float fun (float h)

{long t;

float s;

h=h*1000;

t=(h+5)/10;

s=(float)t/100.0;

return s;}

17.请编写一个函数fun(char *s),该函数的功能使把字符串中的内容拟置。

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

18.编写程序,实现矩阵(3行3列)的转置(即行列互换)。

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

{int i,j,temp;

for (i=0;i3;i++)

{temp=array[i][j];

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

array[j][i]=temp; }}

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

19. 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';}

20.编写函数int fun(int lim,int aa[MAX]),该函数的功能是求出小于或等于lim的所有素数并放在aa数组中,该函数返回所求的素数的个数。

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

{int k=0,i,j;

for(i=lim;i1;i--)

{for(j=2;ji;j++)

if(i%j==0)

break;

else

continue;

if(j=i)

{aa[k]=i;

k++;}}

return k++;}

21.请编写函数fun,对长度位7个字符的字符串,除首尾字符外,将其余5个字符按ASCII码降序排列。

21.void fun(char *s,int num)

{char t;

int i,j;

for (i=1;inum-2;i++)

for (j=i+1;jnum-1;j++)

if(s[i]s[j])

{t=s[i];

s[i]=s[j];

s[j]=t;}}

22.N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,它的功能是:找出学生的最高分,由函数值返回。

22. double fun (STREC *h)

{ double max;

STREC *q=h;

max=h-s;

do

{if(q-smax)

max=q-s;

q=q-next; }

while(q!=0);

return max;}

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

23. int fun(char *str)

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

char *p=str;

while (*p)

{n++;

p++;}

for (i=0;in/2;i++)

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

else

{fg=0;

break;}

return fg;}

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

24. long fun(char *p)

{long s=0,t;

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

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

i++;

for(j=i;j=n-1;j++)

{t=p[j]-'0';

s1=10;

for (k=j;kn-1;k++)

t*=s1;

s+=t; }

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

return -s;

else

return s;}

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

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

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

int n=0,m=0;

while(*s1)

{n++;

s1++;}

while(*t1)

{m++;

t1++;}

if(n=m)

p=s;

else

p=t;

return p;}

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

X/2=1+1/3+1×2/3×5+1×2×3/3×5×7+1×2×3×4/3×5×7×9+...+1×2×3×...×n/3×5×7×(2n+1)

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

26. double fun(double eps)

{double s;

float n,t,pi;

t=1;pi=0;n=1.0;s=1.0;

while((fabs(s))=eps)

{pi+=s;

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

s*=t;

n++;}

pi=pi*2;

return pi;}

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

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

{int i,j;*n=0;

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

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

{a[j]=i;

j++;}

*n=j;}

28.请编写一个函数fun,它的功能是:找出一维整型数组元素中最大的值和它所在的下标,最大的值和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。主函数中x是数组名,n 是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。

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

{int i;

*max=a[0];

*d=0;

for(i=0;in;i++)

if(a[i]*max)

{*max=a[i];

*d=i;}}

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

29. void fun(char *ss)

{int i,n;

n=strlen(ss);

for(i=1;in;i+=2;)

if(ss[i]='a'ss[i]='z')

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

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

30. int fun(int a[][M])

{int i,j,max;

max=a[0][0];

for(i=0;i2;i++)

for(j=0;jM;j++)

if(a[i][j]max)

max=a[i][j];

return max;}

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

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

{int i,j,n;

n=strlen(s);

for(i=0;in;i++)

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

{t[j]=s[j];

j++;}

t[j]='\0';}

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

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

{int i,j=0,n;

n=strlen(s);

for(i=0;in;i++)

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

{t[j]=s[j];

j++;}

t[j]='\0';}

33.假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:使字符串中尾部的*号不得多于n个;若多于n个,则删除多于的*号;若少于或等于n个,则什么也不做,字符串中间和前面的*号不删除。

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

t++;

if(kn)

{while(*ppt+n)

{a[i]=*p;

i++;

p++;}

a[i]='\0'; }}

34.学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能使:把分数最高的学生数据放在h所指的数组中,注意:分数最高的学生可能不止一个,函数返回分数最高的学生的人数。

34. int fun(STREC*a,STREC *b)

{int i,j=0,max;

max=a[0].s;

for(i=0;iN;i++)

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

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

j++;

n++;}

return n;}

35.请编写一个函数,用来删除字符串中的所有空格。

35. void fun(char *str)

{int i=0;

char *p=str;

while(*p)

{if(*p!='')

{str[i]=*p;

i++;}

p++;}

str[i]='\0';}

36.假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串中的前导*号全部移到字符串的尾部。

36. void fun(char *a)

{int i=0,n=0;

char *p;

p=a;

while (*p=='*')

{n++;

p++;}

while (*p)

{a[i]=*p;

i++;

p++;}

while(n!=0)

{a[i]='*';

i++;

i--;}

a[i]='\0';}

37.某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出。请编写函数fun,它的功能是:求出该学生的平均分放在记录的ave成员中。请自己定义正确的形参。

37. void fun(STREC *p)

{double av=0.0;

int i;

for(i=0;iN;i++)

av+=p-s[i];

av/=N;

p-ave=av;}

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

38. int fun(char *ss,char c)

{int n=0;

while(*ss)

{if(*ss==c)

n++;

ss++;}

return n;}

39.请编写函数fun,该函数的功能是:移动一维数组中的内容,若数组中由n个整数,要求把下标从0到p(p小于等于n-1)的数组元素平移到数组的最后。

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

{int b[N],i,j=0;

for(i=0;i=p;i++)

b[i]=w[i];

for(i=p+1;in;i++)

{w[j]=w[i];

j++;}

for(i=0;i=p;i++)

{w[j]=b[i];

j++;}}

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

40.void fun(char *w,int m)

{char b[N];

int i,j=0;

for(i=0;im;i++)

{b[j]=w[i];

j++;}

for(i=0;istrlen(w)-m;i++)

w[i]=w[i+m];

for(j=0;jm;j++)

{w[i]=b[j];

i++;}

w[i]='\0';}

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

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

{int i,j,k=0;

for(j=0;jn;j++)

for(i=0;iM;i++)

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

k++;}

b[k]='\0';}

42.下列程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(int a[][N],int m),该函数的功能是:将数组右上半三角元素中的值乘以m。

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

{int i,j;

for(j=0;jN;j++)

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

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

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

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

{int i;

char *max;

max=a[0];

for(i=0;inum;i++)

if(strlen(max)strlen(a[i]))

max=a[i];

return max;}

44.编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。

44. int fun(char *str,char *substr)

{int n;

char *p,*r;

n=0;

while(*str)

{p=str;

r=substr;

while(*r)

if(*r==*p)

{r++;

p++;}

else

break;

if(*r=='\0')

n++;

str++;}

return n;}

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

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

{int i=0;

char *p;

for(p=a+h;pa+n-e;p++)

{*(a+i)=*p;

i++;}

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

46.学生得记录由学号和成绩组称个,N名大学生得数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能时:按分数的高低排列学生的记录,高分在前。

46. void fun(STREC a[])

{int i,j;

STREC t;

for(i=0;iN-1;i++)

for(j=i;sN;j++)

if(a[i].sa[j].s)

{t=a[i];

a[i]=a[j];

a[j]=t; }}

47.请编写一个函数void fun(char *ss),其功能时:将字符串ss中所有下标为奇数位置上的字母转换为大写(若位置上不是字母,则不转换)。

47. void fun(char *ss)

{int i,n=0;

char *p=ss;

while(*p)

{n++;

p++;}

for (i=0;in;i++)

if ((ss[i]='a'ss[i]='z')

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

ss[i]='\0';}

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

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

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

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

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

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

for(i=0;in;i++)

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

else

{f[j]=s[i];

j++;}

t[j]='\0';}

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

50. void fun(STU a[],STU *s)

{int i,max;

max=a[0].s;

for (i=0;iN;i++)

if(a[i].smax)

{max=a[i].s;

*s=a[i];}}

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

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

{int i,j;

int t=0;

for(i=2;im;i++)

{j=2;

while(ji)

{if(i%j==0)

{xx[t]=i;

t++;

break;}

j++;}

*k=t;}}

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

52. 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[i]=*q;

q++;

i++;}

p1[i]='\0';}

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

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

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

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

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

at[i][j]=a[j][i];

for(i=0;i3;i++)

for(j=0;j3;j++)

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

54.学生的记录由学号和成绩组称个,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:把低于平均分的学生数据放在b所指的数组中,低于平均分的学生人数通过形参n传回,平均分通过函数值返回。

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

{double aver=0.0;

int i,j=0;

*n=0;

for (i=0;iN;i++)

aver+=a[i].s;

aver/=N;

for(i=0;iN;i++)

if(a[i].saver)

{b[j]=a[i];

(*n)++;

j++; }

return aver;}

c语言计算机二级考试选择题如图?

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

下列各题 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) 设当前盘中某一文件路径为ACB,当前目录为A。下列命令中错误的是

A) CD.. B) RD ACB

C) TYPE ACB D) TYPE CB

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

的内容,应使用命令

A) TYPE AB B) TYPE AB

C) TYPE D) DIR AB

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

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

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

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

确执行的是

A) RD C:USERXYP B) RD USERXYP

C) MD USERXYPUSER D) MD USERXYPXY

(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 *.FORCON与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) ++t; B) n1=(n2=(n3=0)); C) k=i==j; D) a=b+c=1;

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

A) I= *P; B) *P=*J; C) i=j; D) 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 x;char 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("%sn",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=0;s[k];k++)

switch(s[k])

{ default:v4++;

case '1': v1++;

case '3': v3++;

case '2': v2++; }

printf("v1=%d,v2=%d,v3=%d,v4=%dn",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=11;printf("k=%d,k=%o,k=%xn",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=k;w!=0;w--) printf("*"); B)for(w=k;w;--w)printf("*");

C)w=k; D)w=k;

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

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

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

C) p=a;scanf("%lf",a); D)p=a; scanf("%le",p);

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

#include

#include

main()

{ char ss[10]="12345";

gets(ss);printf("%sn",ss); }

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

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

main()

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

fpr(k=o; k3;k++)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=a; p-a10; p++)

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

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

}

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

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

(42) 下面程序的输出是

#include

main()

{ char*a="abcdefgh";

fun(a);puts(a); }

fun (char * s)

{ int x=0,y;char c;

for(y=strlen(s)-1;x

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=1; fun(fun(t));}

fun(int h)

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

int k;

for(k=0;k3;k++) a[k]+=a[k]-h;

for(k=1;k3;k++) 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=10; printf("%dn",fun(5)*w); }

如何把C语言上机软件中的题库提取出来

是计算机等级考试吗?等级考试上机试题是随机抽取,只抽一次的,其实监考老师特许的情况下,经过他的设置可以重新抽题的,抽一次包括一套的,你可以在迅雷或者网站上下载一个c语言上机考试软件的,搜一下很容易就找到了,随便下载一个,是完整的软件模拟,跟正式考试基本上一样,操作步骤和题型都一样,交卷以后电脑可以自动阅卷得分的,还提醒你那做错了,给你正确答案的,试一下吧!很容易的


    “c语言上机考试题库(c语言上机考试题库电子版)”由考试资料网(www.kszl.net)整理!仅供学习参考!具体以权威部门公布的内容为准!

------分隔线----------------------------


------分隔线----------------------------