四川省二级c语言29次机试试题及

四川省二级c语言29次机试试题及
四川省二级c语言29次机试试题及

(第一套)

(60分钟)

一、程序调试题(40分)

磁盘上有一程序test1-1.c,其中函数fun的功能是:求出形参ss所指字符串数组中最长字符串的长度,其余字符串左边用字符*补齐,使其与最长的字符串等长。字符串数组中共有M个字符串,且串长

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

注意:不得增行或删行,也不得更改程序结构。

源程序如下:

# include

# include

# define M 5

# define N 20

void fun(char (*ss)[N])

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

for(i=0;i

{ len=strlen(ss[i]);

if(i=0) n=len;

if(len

{ n=len;

k=i;

}

}

for(i=0;i

if(i!=k)

{ m=n;len=strlen(ss);

for(j=len;j>=0;j--)

ss[i][m--]=ss[i][j];

for(j=0;j

ss[i][j]='*';

}

}

void main()

{ char ss[M][N];

int i;

FILE *fp;

fp=fopen("test1-1.in","r");

if(fp==NULL)

{ printf("File cannot open!\n");

exit(0);

}

for(i=0;i

fscanf("%s",ss[i]);

printf("\nThe original strings are:\n");

for(i=0;i

printf("%s\n",ss[i]);

fun(ss);

for(i=0;i

printf("%s\n",ss[i]);

fclose(fp);

}

二、编写程序test1-2.c(60分)

程序的功能是:删除一个字符串中指定的字符。

编写fun函数,其功能是删除一个字符串中指定的字符。假设字符串为:turbo c and borland c++,指定要删除的字符为n,则删除后的字符串变为:turbo c ad borlad c++。如果输入的字符在字符串中不存在,则字符串照原样输出。同一字母的大、小按不同字符处理。

在main函数中输入一个字符串(可以有空格)和一个要删除的字符,调用函数fun,最后输出结果。

一、程序调试题(40分)

磁盘上有一个名为test2-1.c 的C 程序,其中函数fun 的功能是:用下面的公式求π的近似值,直到最后一项的绝对值小于指定的数(参数num)为止:

?+-+-≈71

51314

例如,程序运行后,输入0.0001,则程序输出3.1414 。 请改正程序中的错误,使程序能得出正确的结果。 注意:不得增行或删行,也不得更改程序结构。 源程序如下:

# include # include float fun(float num) { int s;

float n,t,pi;

t=1;pi=0;n=1;s=1; while(t>=num)

{ pi=pi+t; n=n+2; s=-s; t=s%n; }

pi=pi*4; return; }

main() {

float n1,n2; FILE *fp;

fp=fopen("test2-1.out","r"); if(fp==NULL)

{ printf("\nFile cannot open!\n"); exit(0); }

printf("Enter a float number:"); scanf("%f",&n1); n2=fun();

printf("%6.4f\n",n2);

fprintf(fp,"Result=%6.4f\n",n2); fclose(fp); }

二、编写程序test2-2.c (60分)

编写函数fun ,其功能是:将形参指针a 指向的字符顺序放入形指针c 指向的字符串中,再把形参指针b 指针的字符串逆序放入形参指针c 指向的字符串中。注:不能使用字符串的复制和连接函数。

例如:a 指向的字符串为adcb ,b 指向的字符串为213,则字符串c 中的内容为adcb312。

一、程序调试题(40分)

磁盘上有一个名为test3-1.c的C程序文件,其中函数fun的功能是:将数组a中n个整数进行移动,大于等于0的数放在数组的前面,小于0的数放在后面。

例如:数组中的数为:12 -34 56 -9 -10 25 9 -8 24 90,移动后的结果为:12 56 25 9 24 90 -34 -9 -10 -8

在main函数中,从一文本文件test3-1.in中读取10个整数放入整型数组中,调用函数fun,并输出最后的结果。

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

注意:不得增行或删行,也不得更改程序结构。

源程序如下:

# include

void fun(int a[],int n)

{

int i,j=0,b[20];

for(i=0;i

if(a[i]>=0)

b[j]=a[i];

for(i=0;i

if(a[i]>0)

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

for(i=0;i

a[i]=b[i];

}

void main()

{

int a[10],i;

char filename[20];

FILE *fp;

printf("Input filename:");

scanf("%c",filename);

if((fp=fopen(filename,"r"))==NULL){

printf("Cannot open the file.\n");

exit(0);

}

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

fscanf(fp,"%d",a[i]);

fun(a,10);

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

printf("%4d",a+i);

fclose(fp);

}

二、编写程序test3-2.c(60分)

编写函数fun,函数fun的功能是:将字符串s最右边的n个字符赋值到新串t中,若n大于s的长度,

例如:字符串s为abcdefgh,n=5,则字符串t为defgh 。

main函数中输入一字符串s及n的值,调用fun函数并输出结果。

(第四套)(60分钟)

一、程序调试题(40分)

磁盘上有一个名为test4-4.c 的C 程序文件,其功能是:在main 函数中随机生成一个N*N 的二维数组,fun 函数使该数组左下半三角元素中的值乘以n 。例如n=3,当a 数组中的值为:

????? ??=654832791a ,运行程序后a 数组的值就变为:????

? ??=181512896793a

在main 函数中将运行结果输出到屏幕上和文件test4-4.out 中。请改正程序中的错误,使它能得出正确

结果。

注意:不得增行或删行,也不得更改程序结构。 源程序如下:

# include "stdio.h" # define N =3

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

int i,j;

for(i=0;i=j)

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

main() {

int a[N][N],n,i,j; FILE *fp;

for(i=0;i

printf("\n"); } do

n=rand()%10; while(n<=3)

printf("n=%4d\n",n); fun(a,n);

fp=fopen("test4-1.out","w"); if(fp==NULL)

{ printf("\nFile cannot open!\n); exit(0); }

for(i=0;i

fprintf(fp,"%4d",a[[i][j]);

}

printf("\n");

}

fclose(fp);

}

二、编写程序test4-2.c(60分)

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

例如,若字符串中的内容****A*BC*DEF*G*******,删除后,字符串中的内容则应该是A* BC*DEF*G。

(第五套)(60分钟)

一、程序调试题(40分)

给定程序test5-1.c,函数fun的功能是求两个形参的乘积和商,其结果存入形参指针所指的地址中,函数io实现数据的输入和输出。假设输入文件test5-1.in有数据61.82和12.65,则两个数的乘积和商分别为782.02300和4.886957 。main函数调用函数io 。

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

注意:不得增行或删行,也不得更改程序结构。

源程序如下:

# include

void fun(double a,b,*x,*y)

{ x=a*b; y=a/b;

}

io()

{ int i;

double a,b,c,d;

file *rf,*wf;

rf=fopen("test5-1.in","r");

wf=fopen("test5-1.out","w");

fscanf(rf,"%lf%lf",&a,&b);

fun(a,b,c,d);

fprintf("c=%lf\nn=%lf\n",c,d);

printf("c=%lf\nn=%lf\n",c,d);

fclose(rf);

fclose(wf);

}

void main()

{

double a,b,c,d;

clrscr();

io();

}

二、编写程序test5-2.c(60分)

用函数调用方式编写程序。要求实现:在主函数中输入一个3×4的整型矩阵,调用函数covert对其进行转置并将结果存放在另一个二维数组中,最后在主函数中输出结果。

答案

29-1套参考答案:

一、程序调试题(文件名为test1-1.c)( 40 分)

# include

# include

# define M 5

# define N 20

void fun(char (*ss)[N])

for(i=0;i

{ len=strlen(ss[i]);

if(i=0) n=len; /* 改为:i==0 */

if(lenn */

{ n=len;

k=i;

}

}

for(i=0;i

if(i!=k)

{ m=n;len=strlen(ss); /* 改为:ss[i] */

for(j=len;j>=0;j--)

ss[i][m--]=ss[i][j];

for(j=0;j

ss[i][j]='*';

}

}

void main()

{ char ss[M][N];

int i;

FILE *fp;

fp=fopen("test1-1.in","r");

if(fp==NULL)

{ printf("File cannot open!\n");

exit(0);

}

for(i=0;i

fscanf("%s",ss[i]); /* 改为:fp,"%s",ss[i] */

printf("\nThe original strings are:\n");

for(i=0;i

printf("%s\n",ss[i]);

printf("\n");

fun(ss);

for(i=0;i

printf("%s\n",ss[i]);

fclose(fp);

}

评分标准:每改对一处得8分

二、编程题(程序文件取名为test1-2.c)(60分)

评分标准:

1. main函数30分

2. fun函数30分

1)字符串和字符输入正确10分1)删除字符方法正确10分2)函数调用参数传递正确10分2)指针使用正确10分3)输出结果正确10分3)s[i]=0 10分参考程序:

# define N 100

int fun(char s[],int c)

{

char *p=s;

int i;

while(*p)

{ if(*p!=c) s[i++]=*p;

p++;

}

s[i]=0;

}

main()

{

char str[N],ch;

printf("\nEnter string:");

gets(str);

printf("Entera char to be deleted:");

scanf("%c",&ch);

fun(str,ch);

printf("Result=%s\n",str);

}

29-2套参考答案:

一、程序调试题(文件名为test2-1.c)( 40 分)

# include

# include

float fun(float num)

{ int s;

float n,t,pi;

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

while ( t>=num ) /* 改为:fabs(t)>=num */

{ pi=pi+t; n=n+2; s=-s;

t=s%n; /* 改为:s/n */

}

pi=pi*4;

return; /* 改为:return pi */

}

main()

{

float n1,n2;

FILE *fp;

fp=fopen("test2-1.out","r"); /* 改为:w */

if(fp==NULL)

{ printf("\nFile cannot open!\n");

exit(0);

printf("Enter a float number:");

scanf("%f",&n1);

n2=fun(); /* 改为:n2=fun(n1) */

printf("%6.4f\n",n2);

fprintf(fp,"Result=%6.4f\n",n2);

fclose(fp);

}

评分标准:每改对一处得8分

二、编程题(程序文件取名为test2-2.c)(60分)

评分标准:

1. fun函数编写40分

2. main函数20分

1)函数定义、形参书写正确10分1)能正确字义数组,并能对字符串进2)能正确将字符数组a复制到字符数组c 10分行正确的输入和输出10分3)能正确将字符数组b复制到字符数组c 10分2)能正确调用fun函数10分4)c[k]=’\0’10分

参考程序:

# include

# include

void fun(char *a,char *b,char *c)

{

int i,j,k;

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

c[i]=a[i];

for(k=i,j=strlen(b)-1;j>=0;k++,j--)

c[k]=b[j];

c[k]='\0';

}

void main()

{

char a[50],b[50],c[100];

printf("Input string a:");

gets(a);

printf("Input string b:");

gets(b);

fun(a,b,c);

printf("string c:%s\n",c);

}

29-3套参考答案:

一、程序调试题(文件名为test3-1.c)( 40 分)

# include

void fun(int a[],int n)

{

int i,j=0,b[20];

for(i=0;i

b[j]=a[i]; /* 改为:j++ */ for(i=0;i

if(a[i]>0) /* 改为:< */

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

for(i=0;i

a[i]=b[i];

}

void main()

{

int a[10],i;

char filename[20];

FILE *fp;

printf("Input filename:");

scanf("%c",filename); /* 改为:%s */

if((fp=fopen(filename,"r"))==NULL){

printf("Cannot open the file.\n");

exit(0);

}

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

fscanf(fp,"%d",a[i]); /* 改为:&a[i] */

fun(a,10);

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

printf("%4d",a+i); /* 改为:a[i] */

fclose(fp);

}

评分标准:每改对一处得8分

二、编程题(程序文件取名为test3-2.c)(60分)

评分标准:

1.fun函数编写40分:

1) 函数定义、形参书写正确10分

2) 能正确处理n大于s的长度的情况10分

3) 能正确处理n小于s的长度的情况10分

4) t[j]=’\0’10分

2.main函数20分:

1) 能正确定义数组,并能正确进行输入输出10分

2) 能正确调用函数10分

参考程序:

# include

# include

void fun(char *s,char *t,int n)

{

int i,j,k;

k=strlen(s);

if(n>=k)

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

t[i]='\0';

}

else

{ for(i=k-n,j=0;s[i]!='\0';i++,j++)

t[j]=s[i];

t[j]='\0';

}

}

void main()

{

char s[80],t[80];

int i,n;

printf("Input string:");

gets(s);

printf("Input n:");

scanf("%d",&n);

fun(s,t,n);

printf("Result:");

puts(t);

}

29-4套参考答案:

一、程序调试题(文件名为test4-1.c)( 40 分)

# include "stdio.h"

# define N =3 /* 改为:3 */

int fun(int a[][N],n) /* 改为:int n */

{

int i,j;

for(i=0;i

for(j=0;j

if(i>=j)

a[i][j]=*n; /* 改为:*= */ }

main()

{

int a[N][N],n,i,j;

FILE *fp;

for(i=0;i

{ for(j=0;j

{ a[i][j]=rand()%10;

printf("%4d",a[j][i]); /* 改为:a[i][j] */

}

printf("\n");

}

do

n=rand()%10;

printf("n=%4d\n",n);

fun(a,n);

fp=fopen("test4-1.out","w");

if(fp==NULL)

{ printf("\nFile cannot open!\n);

exit(0);

}

for(i=0;i

{ for(j=0;j

{ printf("%4d",a[i][j]);

fprintf(fp,"%4d",a[[i][j]);

}

printf("\n");

}

fclose(fp);

}

评分标准:每改对一处得8分

二、编程题(程序文件取名为test4-2.c)(60分)

评分标准:

1.fun函数编写20分:

1) 函数定义、形参书写正确10分

2) for循环书写正确10分

2.main函数40分:

1) 字符串输入和输出正确5分

2) 字符串的长度计算准确10分

3) 字符串前导*号个数计算准确10分

4) 字符串尾部*号个数计算准确10分

5) 函数调用参数传递正确5分

参考程序:

# include

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

}

void main()

{ char s[81],*t,*f;

int m=0,tn=0,fn=0;

printf("Enter a string:\n");

gets(s);

t=f=s;

while(*t) {t++; m++; }

t--;

while(*f=='*') { f++; fn++; }

fun(s,m,fn,tn);

printf(The string after deleted:\n);

puts(s);

}

29-5套参考答案:

一、程序调试题(文件名为test5-1.c)( 40 分)

# include

void fun(double a,b,*x,*y) /* 改为:double b, double *x, double *y */

{ x=a*b; y=a/b; /* 改为:*x=a*b; *y=a/b; */

}

io()

{ int i;

double a,b,c,d;

file *rf,*wf; /* 改为:FILE */

rf=fopen("test5-1.in","r");

wf=fopen("test5-1.out","w");

fscanf(rf,"%lf%lf",&a,&b);

fun(a,b,c,d); /* 改为:fun( a , b , &c , &d ) */

fprintf("c=%lf\nn=%lf\n",c,d); /* 改为:fprintf ( wf , "c=%lf\nn=%lf\n" , c , d ) ; */ printf("c=%lf\nn=%lf\n",c,d);

fclose(rf);

fclose(wf);

}

void main()

{

double a,b,c,d;

clrscr();

io();

}

评分标准:每改对一处得8分

二、编程题(程序文件取名为test5-2.c)(60分)

评分标准:

1.convert函数25分

1) 函数定义(参数)正确10分

2) 转置正确15分

2.main函数35分

1) 二维数组定义正确5分

2) 数据输入正确10分

3) 函数调用参数传递正确10分

4) 结果输出正确10分

参考程序:

# include

void convert(int a[][4],int b[][3])

int i,j;

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

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

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

}

void main()

{

int a[3][4],b[4][3];

int i,j;

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

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

scanf("%d",&a[i][j]); convert(a,b);

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

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

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

printf("\n");

}

}

c语言机试题

(1)/*程序修改题目要求: 下列给定程序中,fun函数的功能是:求a=xx…xx-…-xx-xx-x (此处xx…xx表示n个x,x和n的值在1至9之间)。例如:x=3,a=6,则以上表达式为: a=333333-33333-3333-333-33-3 其值是296298。x和n是fun函数的参数,表达式的值作为函数值 传回main函数。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的 结构。每处3分,共9分*/ #include #include long fun(int x,int n) { int j; /*********found*********/ long a=0,t=1; /*********found*********/ for(j=0;j<=n;j++) t=t*10+x; a=t; for(j=1;j main() { int i,count=0,a[11]={0,10,2,8,22,16,4,10,14, 20}; /******found*****/ while(__1__) { for(i=1;i<=10;i++) a[i-1]=a[i-1]/2+a[i]/2; a[10]=a[10]/2+a[0]; for(i=1;i<=10;i++) /******found*****/ if(__2__) a[i]++; for(i=1;i<10;i++) /******found*****/ if(a[i]!=a[i+1]) __3_; if(i==10) break; else { a[0]=0; count++; } } printf("count=%d number=%d\n",count,a[1]); } 答案: 1. 2. a[i]%2==1 3. break (3)/*编程题目要求: 请输入星期几的第一个字母来判断一下是星期 几, 如果第一个字母一样,则继续判断第二个字母。 注意:部分程序段已给出,请勿改动 仅在两个found中填入你编写的若干语句。本题14分*/ #include void main() { /*******found******/ 答案:char ch1,ch2; printf("请输入第一个字母:"); ch1 = getchar(); getchar(); // 吸收换行符 if(ch1 == 'S') { printf("请输入第二个字母:"); ch2 = getchar(); switch(ch2) { case 'a': printf("星期 六\n");break; case 'u': printf("星期 日\n");break; } } else if(ch1 == 'T') { printf("请输入第二个字母:"); ch2 = getchar(); switch(ch2) 1

C语言上机试题

1:第1题m个人的成绩存放在score数组中,请编写函数fun,它的功能就是:将低于平均分的人作为函数值返回,将低于平均分的分数放在below所指定的函数中。 2:第2题请编写函数fun,它的功能就是:求出1到100之内能北7或者11整除,但不能同时北7与11整除的所有证书,并将她们放在a所指的数组中,通过n返回这些数的个数。 3:第3题请编写函数void fun(int x,int pp[],int *n),它的功能就是:求出能整除x且不就是偶 数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。 4:第4题请编写一个函数void fun(char *tt,int pp[]),统计在tt字符中"a"至U "z"26各字母各自出现的次数,并依次放在pp所指的数组中。 5:第5题请编写一个函数void fun(int m,int k,int xx[]),该函数的功能就是:将大于整数m且 紧靠m的k各素数存入xx所指的数组中。 6:第6题请编写一个函数void fun(char a[],char[],int n),其功能就是:删除以各字符串中指定下标的字符。其中,a指向原字符串,删除后的字符串存放在b所指的数组中,n中存放指定的下标。 7:第7题请编写一个函数int fun(int *s,int t,int *k),用来求除数组的最大元素在数组中的下 标并存放在k所指的储存单元中。 8:第8题编写函数fun,功能就是:根据以下攻势计算s,计算结果作为函数值返回『通过形参 传入。S=1 + 1/(1+2)+1/(1+2+3)+ ??…、+1/(1+2+3+4+ ??…+n) 9:第9题编写一个函数fun,它的功能就是:根据以下公式求p的值,结果由函数值带回。M 与n为两个正整数,且要求m>n。p=m!/n!(m-n)! 10:第10题编写函数fun,它的功能就是:利用以下的简单迭代方法求方程cos(x)-x=0的一个 实根。 迭代步骤如下:(1)取x1初值为0、0;⑵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。 11:第11题下列程序定义了nx n的二维数组,并在主函数中自动赋值。请编写函数fun(int a[][n]),该函数的功能就是:使数组左下半三角元素中的值全部置成0。 12:第12题下列程序定义了n x n的二维数组,并在主函数中赋值。请编写函数fun,函数的 功能使求出数组周边元素的平均值并作为函数值返回给主函数中的s。 13:第13题请编写一个函数void fun(int tt[m][n],int pp[n]),tt 指向一个m行n列的二维函数组,求出二维函数组每列中最小元素,并依次放入pp所指定一维数组中。二维数组中的数已在主函数中赋予。 14:第14题请别写函数fun,函数的功能使求出二维数组周边元素之与,作为函数值返回。二 维数组中的值在主函数中赋予。 15:第15题请编写一个函数unsigned fun(unsigned w),w 使一个大于10的无符号整数,若w 使n(n>2)位的整数,则函数求出w后n-1位的数作为函数值返回。 16:第16题请编写一个函数float fun(double h),函数的功能使对变量h中的值保留2位小树, 并对第三位进行四舍五入(规定h中的值位正数)。 17:第17题请编写一个函数fun(char *s),该函数的功能使把字符串中的内容拟置。 18:第18题编写程序,实现矩阵(3行3列)的转置(即行列互换)。 19:第19题编写函数fun,该函数的功能就是:从字符中删除指定的字符,同一字母的大、小写按不同字符处理。20:第20题编写函数int fun(int lim,int aa[max]),该函数的功能就是求出小于或等于lim的所有素数并放在aa数组中,该函数返回所求的素数的个数。 21:第21题请编写函数fun,对长度位7个字符的字符串,除首尾字符外,将其余5个字符按ascii码降序排列。

C语言上机练习题

上机练习题 1.输入一个不超过五位的正整数,输出其逆数。例如输入12345,输出应为54321。 2.计算1+2+3…+n的值,n是从键盘输入的自然数。 3.从终端(键盘)读入20个数据到数组中,统计其中正数的个数,并计算这些正数之和。 4.从终端(键盘)将5个整数输入到数组a中,然后将a逆序复制到数组b中,并输出b中 各元素的值。 5.要将五张100元的大钞票,换成等值的50元,20元,10元,5元一张的小钞票,每种面 值至少1张,编程输出所有可能的换法,程序应适当考虑减少重复次数。 6.求n以内(不包括n)同时能被3和7整除的所有自然数之和的平方根s,n从键盘输入。 例如若n为1000时,函数值应为:s=153.909064。 7.一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下 车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号刚好是一个整数的平方。请根据以上线索找出车号。 8.输入1~10之间的一个数字,输出它对应的英文单词。 9.个位数为6且能被3整除但不能被5整除的三位自然数共有多少个,分别是哪些? 10.用自然语言描述程序逻辑如下,试写程序。 ①设置环境; ②定义变量i、j、s,以及用于放置结果的变量sum,并令sum初值为0; ③i=1; ④如果i≤100,则转⑤,否则转⑧; ⑤令s=0,求前i个自然数之和,并放于变量s之中; ⑥sum=sum+s; ⑦i增加1,转④; ⑧输出和sum,结束。 11.用自然语言描述的程序逻辑为: ①设置环境; ②定义变量i、flag和password,并令flag=0,i=0; ③用户回答口令,将其赋于password变量; ④口令正确?如果是,则flag=1,转⑥。否则转⑤; ⑤回答三次口令了吗?如果没有,计数器加1后(i++),转③,否则转⑥; ⑥根据flag之值输出相应信息。 12.用自然语言描述的程序逻辑如下: ①设置环境; ②定义变量digit、x、y分别表示原始数、原始数的个位数和逆数; ③输入原始正整数x; ④从x中分解出个位数字digit; ⑤合并个位digit至逆数y中; ⑥原始数x缩小10倍:x=x/10; ⑦如果x非零,则转④; ⑧输出逆数y,结束 13.输入某三角形的三个边的长度,判断出这是个什么三角形(等腰、等边、任意,或不能构 成)。 14.输入10个数,分别统计其中正数、负数、零的个数。 15.先随机产生N个三位自然数输出,然后再输出其中同时是3、5、7倍数的数。(设N为100)

C语言基础选择试题(一)

C语言基础选择试题(一) 2123 答案 :C 所谓“裸机”是指( )。 a:没有安装机箱 b:没有安装应用软件 c:没有安装任何软件的计算机 c:只安装操作系统的计算机 2145 答案 :D 可用于大小写字母转换的键是( )。 a:Esc b:CapsLock c:Shift c:CapsLock或Shift 1068 答案 :D 计算机病毒的主要特征是()。 a:只会感染不会致病 b:造成计算机器件永久失效 c:格式化磁盘 c:传染性、隐蔽性、破坏性和潜伏性 1054 答案 :D 个人计算机属于( ) 。 a:小型计算机 b:中型计算机 c:巨型计算机 d:微型计算机 1080 答案 :B 用汉语拼音输入“长沙”两个汉字,输入“changsha”8个字符,那么,“长沙”两字的内码所占用的字节数是()。 a:2 b:4 c:8 c:16 1053 答案 :A 操作系统的功能是( )。 a:提高系统资源的利用率,方便用户使用计算机 b:负责给程序和数据分配内存空间 c:负责各种文件的管理 c:管理磁盘文件和I/O设备管理 1055 答案 :C 组建以太网时,通常都是用双绞线把若干台计算机连到一个中心的设备上,这个设备叫做()。 a:网络适配器 b:服务器 c:集线器 c:总线 1057 答案 :D

应用软件是指( )。 a:所有能够使用的软件 b:能被各应用单位共同使用的某种软件 c:所有微机上都应用的基本软件 c:专门为某一应用目的而编制的软件 1078 答案 :B 为网络提供共享资源并对这些资源进行管理的计算机称之为()。 a:网卡 b:服务器 c:工作站 c:网桥 1082 答案 :B 在Windows98中运行应用程序时,下列哪个操作调不出帮助信息()。 a:按F1键 b:按F10键 c:单击“帮助”菜单 c:单击窗口右上角“”按钮 1068 答案 :A ISO/ OSI参考模型七层协议中第一层是()。 a:物理层 b:数据链路层 c:网络层 c:传输层 2083 答案 :A 解释程序的功能是()。 a:解释执行高级语言程序 b:解释执行汇编语言程序 c:将汇编语言程序翻译成目标程序 c:将高级语言程序翻译成目标程序 1071 答案 :B 在计算机网络术语中,WAN的中文意义是()。 a:以太网 b:广域网 c:互联网 c:局域网 1055 答案 :C 主存储器又称为()。 a:RAM b:ROM c:内存 c:外存 1056 答案 :D 把同种或异种类型的网络相互连接起来称为()。 a:广域网 b:万维网(WWW c:城域网 c:互联网

c语言机试经典编程题重点!!!

本学期《程序设计基础》课程实行上机考核,现将考核有关事项通知如下:(1)考核时间:本学期最后一次上机时间为机试。 (2)考核内容:主要是算法设计与实现。考题来自本学期布置的作业、例题及一些补充的题目。 (3)考试形式:机试前进入机房时,每人随机抽取一道题(同一个组的同学保证不抽到同一题),然后上机编程,调试通过后报告监考人员审核,审核通过后将源程序拷贝到监考人员U盘上,然后可以离开机房。源程序文件明必须是“学号姓名.cpp”,如“王梓丞.cpp”。 (4)考试要求:机试时考试规则同课堂考试一致,不允许带书、纸张等。不能携带任何可用计算机处理的软件或数据(不允许任何私人携带的U盘、磁盘或计算器) ,不能携带任何类型的通讯工具,包括无线电接收器、移动电话。 (5)考试成绩:本次机试成绩将在《程序设计基础》课程成绩中占25%的比重。 (6)其它有关事项由主考教师和监考人员负责处理。 附:考试题集 1.学校曾经组织一次“程序设计大奖赛”,规定本学期“程序设计”课程的成绩可以因为 在大奖赛上获奖而加5分,总分不超过100分。编程序,输入某同学的考试成绩,回答是否在竞赛中获奖,计算并输出该某同学的程序设计课成绩。 #include void main(){ int m,n; printf("请输入考试成绩:\n"); scanf("%d",&m);

printf("请选择获奖情况:1 获奖;2 未获奖\n"); scanf("%d",&n); switch (n){ case 1: m=m+5;break; case 2: m; } if(m>100) m=100; printf("你的最终成绩为:%d\n",m); } 2.编写一个程序,用户输入年份及月份两个数据,程序输出该月份的天数。(提示:对2 月要考虑是否闰年,闰年年份要么能被4整除且不能被100整除,要么能被400整除,除此之外都不是闰年)。 #include int year,a; void main(){ printf("请输入年份月份:"); scanf("%d%d",&year,&a); if(a==1||a==3||a==5||a==7||a==8||a==10||a==12) printf("这个月有31天\n"); else{ if(a==2){ if((year%4==0)&&(year%100!=0)||(year%400==0)) printf("这个月有29天\n"); else printf("这个月有28天\n");

_《C语言》机试题(成-部分答案)

上机试题(一) 1 已知A,B为正整数, A2 试求F(1)+F(3)+F(5)+……+F(49)值。 提示:最好使用递推法求解,因为使用递归调用很可能超出某些语言的递归深度。答案:12586269025 ………………………………………………………………………………………………… 上机试题(四) 1设有6个十进制数字a,b,c,d, e,f ,求满足abcdf×e=fdcba条件的五位数abcdf(a≠0,e≠0,e≠1)的个数。 答案:16 2一个数如果刚好与它所有的因子之和相等,则称该数为一个"完数",如:6=1+2+3,则6就是一个完数。求出200到500之间所有的完数之和。 答案:496 ………………………………………………………………………………………………… 上机试题(五) 1 一个素数(设为p)依次从最高位去掉一位,二位,三位,……,若得到的各数仍都是素数(注:除1和它本身外,不能被其它整数整除的正整数称为素数,1不是素数,2是素数),且数p的各位数字均不为零,则称该数p为逆向超级素数。例如,617,17,7都是素数,因此617是逆向超级素数,尽管503,03,3都是素数,但它不是逆向超级素数,因为它包含有零。试求[100,999]之内的所有逆向超级素数的个数。 答案:39 2 编写程序,求在5000以内能被17或者23整除的正整数的个数。 答案:499 ………………………………………………………………………………………………… 上机试题(六) 1 设有十进制数字a,b,c,d和e,它们满足下列式子:abcd*e=bcde (a不等于0, e不等于0或1),求满足上述条件的所有四位数abcd的和。

国家二级C语言机试(C语言基础知识)模拟试卷8

国家二级C语言机试(C语言基础知识)模拟试卷8 (总分:60.00,做题时间:90分钟) 一、选择题(总题数:30,分数:60.00) 1.我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令。关于转换以下说法错误的是 (分数:2.00) A.一条C语句可能会被转换成多条机器指令 B.一条C语句对应转换成一条机器指令√ C.一条C语句可能会被转换成零条机器指令 D.某种类型和格式的C语句被转换成机器指令的条数是固定的 解析:解析:由C语言编写的程序,通过编译、链接转换成可以让机器识别的01二进制指令。这些二进制指令命令机器计算,这些就是机器指令,而C语言的语句条数和机器指令的条数不是一对一的关系。 2.以下选项中不属于C语言程序运算符的是 (分数:2.00) A.sizeof B.() C.<> √ D.&& 解析:解析:sizeof为测试内存的运算符,()为算术运算符,&&为逻辑运算符。而<>不是C语言的运算符,C语言中!=表示不等于。 3.若变量已正确定义并赋值,以下不能构成C语句的选项是 (分数:2.00) A.A=a+b: B.B++; C.a=a+b √ D.A?a:b; 解析:解析:C语言语句的表示为分号,不加分号的表达式不能看成C语句。 4.以下叙述中正确的是 (分数:2.00) A.程序必须包含所有三种基本结构才能成为一种算法 B.如果算法非常复杂,则需要使用三种基本结构之外的语句结构,才能准确表达 C.只有简单算法才能在有限的操作步骤之后结束 D.我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令√ 解析:解析:C语句构成了函数,函数构成的程序,经过编译转换成二进制代码后可以运行,算法是指为解决某个特定问题而采取的确定且有限的步骤,可以利用代码来捕述算法,而算法+数据结构才是程序,结构化的程序由顺序结构、循环结构和选择结构三种基本结构组成。由这三种基本结构组成的算法可以解决任何复杂的问题,反之则不一定,所有算法必须在有限步骤后结束。 5.下列选项中,不能用作标识符的是 (分数:2.00) A._1234 B._1_2 C.int_2_ D.2_int_ √ 解析:解析:C语言中标以符必须以字母或者下划线开始,选项D)中是以数字开始的不能作为标识符。6.以下选项中作为C语言合法常量的是 (分数:2.00) A.-80.√ B.-080

C语言上机题库

C语言习题集 3.11输入'A'~'F'中的一个字母,代表一个十六进制数,将其转换为十进制数,求该数与15的和并输出。 输入格式: B 输出格式: 26 #include int main(void) { char ch; int sum; ch=getchar(); sum=ch-'A'+10+15; printf("%d\n",sum); return 0; } 3.12输入三个整数,求其平均值。 输入格式: 3 5 7 输出格式: 5 #include int main(void) { int a,b,c,aver; scanf("%d %d %d",&a,&b,&c); aver=(a+b+c)/3; printf("%d\n",aver); return 0; } 3.13根据c=5/9*(f-32) 公式,输入华氏温度f,求摄氏温度c,结果精确到小数点后两位。 输入格式: 80.0 输出格式:26.67 #include int main(void) { float f,c; scanf("%f",&f); c=5.0/9*(f-32); printf("%.2f\n",c); return 0; } 3.14输入一个四位正整数,求其各位数字之和。例如,1357的各位数字之和为1 + 3 + 5 + 7 = 16。 输入格式: 1357 输出格式: 16 #include int main(void) { int num; int a,b,c,d,total; scanf("%d",&num); a=num/1000; b=(num-a*1000)/100; c=(num-a*1000-b*100)/10; d=num-a*1000-b*100-c*10; total=a+b+c+d; printf("%d\n",total); return 0; } 3.15输入一大写字母,输出对应的小写字母。 输入格式: A 输出格式: a

华为C语言机试题面试题汇总

1.第一题的题目大概是输入整型数组求数组的最小数和最大数之和,例如输入1,2,3,4则输出为5,当输入只有一个数的时候,则最小数和最大数都是该数,例如只输入1,则输出为2;另外数组的长度不超过50 #include main() { int num[50]={0}; int i,n; printf("请输入整型数组的长度(1~50):"); scanf("%d",&n); printf("请输入整型数组的元素:"); for (i=0;inum[j]) min_num=num[j]; } int sum=min_num+max_num; printf("数组中最大与最小值之和:%d\n",sum); return 0; } 2.求两个长长整型的数据的和并输出,例如输入1233333333333333。。。3111111111111111111111111.。。。,则输出。。。。 #include #include #include main() { char *num1,*num2;//两个长长整型数据 char *sum; //int temp; int len_num1,len_num2; //两个长长整型数据的长度

C语言机试试题库

1.编写函数fun,它的功能是:计算并输出下列级数和 s= 1/(1*2)+1/(2*3)+...+1(n*(n+1)).例如,当n = 10时,函数值为:0.909091 2.在[10000, 20000]范围内考察个位数字是7的素数, 问:(1) 这样的素数有多少个?(2) 其中最大的一个等于几? 3. 编写程序,从键盘输入一年份,判断该年份是否为闰年。 1. 编写函数fun,它的功能是:计算并输出下列级数和:s= 1/(1*2)+1/(2*3)+...+1(n*(n+1))。例如,当n = 10时,函数值为:0.909091 2. 回文数是指正读和反读都一样的自然数。例如,8, 121, 5445这三个数都是回文数。求: (1) [1,1000]之内既是回文数,又是素数的最大整数。 (2) [1,1000]以内既是回文数,又是素数的整数有多少个" 3. 编写程序,能对输入一行字符,统计其中分别有多少个单词和空格。比如输入:”How are you”,有3个单词和2个空格。 1.编写函数fun,它的功能是:求Fibonacci数列中大于t的最小的一个数,结果由函数返回。其中Fibonacci数列F(n)的定义为: F(0)=0,F(1)=1 F(n)=F(n-1)+F(n-2) 例如:当t =1000时,函数值为:1597。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 2.先从键盘上输入一个3行3列矩阵元素的值,然后输出主对角线元素平方之和. 3. 编程:删除字符串中的数字字符。 1.编写函数fun,它的功能是:求n以内(不包括n)同时能被3与7整除的所有自然数之和的平方根s,并作为函数值返回。 例如若n为1000时,函数值应为:s = 153.909064。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 2.编程求出两个非零正整数的最大公约数. 3.请编写程序:根据以下公式求π(要求满足精度0.0005)的近似值:π/2=1+1/3+(1*2)/(3*5)+(1*2*3)/(3*5*7)+……+(1*2*3*4*……*n)/(3*5*7*……*(2n+1)) 1.现矩阵(3行3列)的转置(即行列互换)。 例如,输入下面的矩阵: 100 200 300 400 500 600 700 800 900 程序输出: 100 400 700 200 500 800 300 600 900

c语言上机机试习题

一、题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔 子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数 为多少 程序分析:兔子的规律为数列1,1,2,3,5,8,13,21.... 程序源代码: main() { longf1,f2; inti; f1=f2=1; for(i=1;i<=20;i++) {printf("%12ld%12ld",f1,f2); if(i%2==0)printf("\n");/*控制输出,每行四个*/ f1=f1+f2;/*前两个月加起来赋值给第三个月*/ f2=f1+f2;/*前两个月加起来赋值给第三个月*/ } } 上题还可用一维数组处理,youtry! 二、题目:判断101-200之间有多少个素数,并输出所有素数。 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。 程序源代码: #include"" main() { intm,i,k,h=0,leap=1; printf("\n"); for(m=101;m<=200;m++) {k=sqrt(m+1); for(i=2;i<=k;i++) if(m%i==0)

{leap=0;break;} if(leap){printf("%-4d",m);h++; if(h%10==0) printf("\n"); } leap=1; } printf("\nThetotalis%d",h); } 三、题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。 程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 程序源代码: main() { inti,j,k,n; printf("'waterflower'numberis:"); for(n=100;n<1000;n++) { i=n/100;/*分解出百位*/ j=n/10%10;/*分解出十位*/ k=n%10;/*分解出个位*/ if(i*100+j*10+k==i*i*i+j*j*j+k*k*k) { printf("%-5d",n); } } printf("\n"); } 四、题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:

国家二级C语言程序设计机试(选择题)模拟试卷3

国家二级C语言程序设计机试(选择题)模拟试卷3 (总分:80.00,做题时间:90分钟) 一、选择题(总题数:40,分数:80.00) 1.下列数据结构中,属于非线性结构的是( )。 (分数:2.00) A.循环队列 B.带链队列 C.二叉树√ D.带链栈 解析:解析:线性结构的特点:①有且只有一个根结点;②每一个结点最多有一个前驱,也最多有一个后继。不满足线性结构条件的称为非线性结构,二叉树的非叶子结点最多可以用两个后继结点,属于非线性结构。 2.算法的空间复杂度是指( )。 (分数:2.00) A.算法在执行过程中所需要的计算机存储空间√ B.算法所处理的数据量 C.算法程序中的语句或指令条数 D.算法在执行过程中所需要的临时工作单元数 解析:解析:算法的空间复杂度是指算法在执行过程中所需要的内存空间,因此本题答案为A。 3.下列数据结构中,能够按照“先进后出”原则存取数据的是( )。 (分数:2.00) A.循环队列 B.栈√ C.队列 D.二叉树 解析:解析:栈是按“先进后出”的原则组织数据的;队列是按“先进先出”的原则组织数据的,因此本题答案为B。 4.软件设计中划分模块的一个准则是( )。 (分数:2.00) A.低内聚、低耦合 B.高内聚、低耦合√ C.低内聚、高耦合 D.高内聚、高耦合 解析:解析:一般较优秀的软件设计应尽量做到高内聚、低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性,因此本题答案为B。 5.结构化程序的三种基本控制结构是( )。 (分数:2.00) A.顺序、选择和重复(循环) √ B.过程、子程序和分程序 C.顺序、选择和调用 D.调用、返回和转移 解析:解析:结构化程序设计中三种基本控制结构为顺序、选择和重复(循环),故正确答案为A。 6.软件需求规格说明书在软件开发中的作用不包括( )。 (分数:2.00) A.软件设计的依据 B.软件可行性分析的依据√ C.软件验收的依据

c语言机试题汇总

第一部分-分支、循环部分 1、某一次考试之后,需要统计考生(10人)的平均成绩,并找出其中的最高分和最低分。 2、从键盘输入两个正整数,输出这两个整数的商,要求商的小数点后保留5位。例如输入355和113, 输出3.14159. 3、用while循环结构编写程序打印ASCII码为33-127的字符 4、用do-while,for循环结构编写程序打印ASCII码为33-127的字符 5、用for循环结构编写程序打印ASCII码为33-127字符 6、在1-500中,找出能同时满足用3除余2,用5除余3,用7除余4的所有整数,用循环结构 7、输入一个整数将其倒着输出,如54321 8、计算s=1+1/3+1/5+…+1/n,截止到1/n<10-4 9、从键盘输入一整数n,计算1*1+2*2+...+n*n的值 10、用while 循环计算1+2+……+100的和 11、用do while循环计算1+2+……+100的和 12、用for 循环计算1+2+……+100的和 13、输入一个小于等于10的整数n ,计算n! 14、输入两个正整数m和n,计算m!+n!,m和n的值均小于10。 15、用循环语句,计算1~100之间的所有3的倍数之和 16、用循环语句,计算100-200之间的所有7的倍数之和 17、输出1-100之间,7的整数倍数或数字尾数为7的数字,统计出这些数字个数 18、输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的个数 19、输入一个整数,统计它有几位数 20、编写程序,输出1到50中间所有能被3整除的正整数 21、把100~200之间不能被3整除的输出 22、编程Y=1+3+5+7+ (111) 23、编程y=1*1/2*1/3*1/4*1/5*1/6*...前十项之积 24、编程实现九九乘法表 25、求1到100奇数和 26、求1到100偶数和 27、编程求200以内所有质数(素数) 28、从键盘输入一个整数,求该数的绝对值 29、从键盘输入+、-、*、/中的任一个,输出对应的英文单词:plus、minus、mutiply、divide,如输入 的不是这4个字符中的任一个,则输出“sorry,you are wrong”。 30、从键盘输入一个字符,判断其是否为a,r,或f,并输出相应的信息(不区分大小写)。 31、编一程序,对于给定的一个百分制成绩,输出用像'A','B','C','D','E'表示的等级成 绩。设:90分以上为'A',80~89分为'B',70~79分为'C',60~69分'D',60分以下为'E'。(要求用switch语句编程)。 32、输入一个整数,判断它能否被3,5,7整除。 33、用整数1~12依次表示1~12月,由键盘输入一个月份数,输出对应的季节英文名称(12~2 月为冬季;3~5月为春季;6~8月为夏季;9~11月为秋季。要求用if嵌套实现)。 34、编写输入整数a,b,c,当a为1时显示b和c之和,a为2时显示b与c之差,a为3 时显示b*c之积,a为4时取b/c之商,a为其他数值时不做任何操作的程序。

大学本科C语言上机考试题

C语言程序设计上机考试题 班级:姓名:学号: 使用C语言编写下列程序(20分×5=100分) 1、输入3个整型数据,求出最大数和最小数。 #include int main() {inta,b,c,e,d,f,g; printf("请输入三个数\n"); scanf("%d,%d,%d",&a,&b,&c); d=(a>b?a:b); e=(d>c?d:c); printf("Max is %d\n",e); f=(a int main() {float score; char grade; printf("请输入学生成绩:"); scanf("%f",&score); while(score>100||score<0)); {printf("\n输入有误,请输入); scanf("%f",&score); } switch((int)(score/10)) {case 10: case 9:grade='A';break; case 8:grade='B';break; case 7:grade='C';break; case 6:grade='D';break;

case 5: case 4: case 3: case 2: case 1: case 0:grade='E'; } printf("成绩是%5.1f,相应的等级是%c\n",score.grade); return 0; } 3、编写一个四则运算程序,输出计算结果。 #include int main() {intc,d,e; floata,b,f; printf("请输入两个数"); scanf("%f,%f",&a,&b); c=a+b; d=a-b; e=a*b; f=a/b; printf("加法结果为%d\n",c); printf("减法结果为%d\n",d); printf("乘法结果为%d\n",e); printf("除法结果为%f\n",f); return 0; } 4.100以内的素数 从键盘输入一个正整数,判断该整数是否为素数。 #include int main() { intn,i; printf("\n"); scanf("%d",&n); for (i=2;i<=n-1;i++) if(n%i==0) break; if(i

国家二级C语言机试(C语言程序设计)模拟试卷33

国家二级C语言机试(C语言程序设计)模拟试卷33 (总分:70.00,做题时间:90分钟) 一、选择题(总题数:35,分数:70.00) 1.要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,以下正确的程序段是 (分数:2.00) A.while(ch=getchar0='N')printf("%c",ch); B.while(ch=getchar()=="N")printf("%c",ch); C.while((ch=getchar())!='N')printf("%c",ch);√ D.while((ch=getchar())=='N')printf("%c",ch); 解析:解析:while循环的执行过程如下:①计算while后面圆括号中表达式的值,当值为非0时,执行步骤②;当值为0时,执行步骤④;②执行循环体一次:③转去执行步骤①;④退出循环。在选项C 中,表达式(ch=getchar())!='N'表示输入的字符不等于N,如果这个条件表达式成立,则执行循环体,打印输出输入的字符。如果这个条件表达式不成立,即输入的字符等于N,则退出循环。 2.若有以下程序 main(){int a=-2,b=0; while(a++) ++b; pfintf("%d,%d\n",a,b);} 则程序的输出结果是 (分数:2.00) A.0,2 B.1,2 √ C.1.3 D.2,3 解析:解析:循环体执行两次,第一次表达式a++值为-2,a的值为-1,执行循环体++b,b值为1,第二次表达式a++值为-1,a的值等于0,执行++b,b值为2,第三次判断条件a++,表达式值为0,不执行循环体,但是条件判断以后,a的值为1。 3.由以下while构成的循环,循环体执行的次数是int k=0;while(k=1)k++; (分数:2.00) A.一次也不执行 B.执行一次 C.无限次√ D.有语法错,不能执行 解析:解析:循环条件表达式为赋值表达式k=-1,因此循环执行无限次。 4.有以下程序 main(){ant a=-2,b=0; while(a++&&++b); printf("%d,%d\n",a,b);} 程序运行后输出结果是 (分数:2.00) A.0,3 B.1,2 √ C.1,3 D.0,2 解析:解析:循环体为空,共执行2次。第一次变量a初值为-2,b初值为0,表达式a++&&++b值为1,同时a的值为-1,b的值为1,第二次循环条件判断以后,a的值为0,b的值2,执行循环体空,第三次判断条件表达式值为0,不执行循环体,而a的值为1,但是表达式a++的值为0,因此不计算表达式++b的值,b的值仍为2。 5.关于do循环体while(条件表达式);以下叙述中正确的是 (分数:2.00) A.循环体的执行次数总是比条件表达式的执行次数多一次 B.条件表达式的执行次数总是比循环体的执行次数多一次 C.条件表达式的执行次数与循环体的执行次数无关

C语言上机测试题目(完整版)

1.有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? #include void main() { int i,j,k; for(i=1;i<=4;i++) for(j=1;j<=4;j++) for(k=1;k<=4;k++) if(i!=j&&i!=k&&j!=k) printf("%d%d%d ",i,j,k); printf("\n"); } 2.企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数? #include main() { long i; float bonus, bon1, bon2, bon4, bon6, bon10; int c; bon1=100000*0.1; bon2=bon1+100000*0.075; bon4=bon2+200000*0.05; bon6=bon4+200000*0.03; bon10=bon6+400000*0.015; printf("请输入利润i:"); scanf("%ld",&i); c=i/100000; if(c>10) c=10; switch(c) { case 0: bonus=1*0.1;break; case 1: bonus=bon1+(i-100000)*0.075;break; case 2 :

相关文档
最新文档