C语言上机考试题

07~08学年第2学期《C 语言程序设计》期末机试试卷

001 班级: 姓名: 学号:

1.编写程序,输入变量x 值,输出变量y 的值。

y = x % 2– x*3

2.编写程序,求100个自然数的积,即: s=1*2*3* … *100=100!。(要求:用while 实现) 3.完成冒泡法排序。

#define N 10 main( )

{ int a[N]; int i,j,t; for (i=0; i

printf("The sorted numbers: \n"); for (i=0; i

002 班级: 姓名: 学号:

1.输入任意三个整数,求它们平均值并输出。

main()

{ int num1,num2,num3,sum; float aver; printf("Please input three numbers:");

① ; /*输入三个整数*/ ② ; /*求平均值*/ ③ ; /*输出平均值*/ }

2.打印出右图图案。(要求用循环实现)

main( ) { int i,j;

for ( ① )

{ for ( ② ) printf(" "); for ( ③ ) printf("*"); printf("\n"); } }

3.编写一字符串复制子函数copystr 。

main( )

{ char c[80],*p="I am a student."; copystr(c,p); printf("%s\n",c); }

003 班级: 姓名: 学号:

1.编写程序,输入变量x 值,输出变量y 的值。

y = 5.4 * x - 1 / 3

2.编写程序,求100个自然数的和,即: s=1+2+3+ … +100。(要求:用for 实现) 3.将10个人的成绩输入计算机后按逆序显示。(要求:用一维数组实现)

#define N 10 main( )

****************

1.完成下列程序并调试,输入2时,使运行结果为3,3。

main()

{ int x;scanf("%d", &x);++x;printf("%d\n", x);printf("%d, %d\n", ①, ②); }

2.编写一函数max,完成输出两个整数中较大的一个,其主函数如下。

main( ) /* 主函数*/

{ int a,b,c; scanf("%d, %d",&a,&b); c = max(a,b); printf("max = %d\n",c); }

3.用指针法输入一个一维数组,再输出数组元素。

main( )

{ int a[10], i, *p; ①; /* 输入*/ printf("\n"); ②; /* 输出*/ printf("\n"); }

005 班级:姓名:学号:

1.根据运行结果,完成并调试下列程序。

运行结果为:ch1=a,ch2=b

ch1=97,ch2=98

main()

{ char ch1,ch2; ch1='a'; ch2='b'; ①; ②; }

2.已知三条边a、b、c,求三角形面积。计算三角形面积的海伦公式:

area其中:

1

s(a b c) 2

=++

3.输入a、b两个整数,使用指针变量按大小顺序输出这两个整数。(要求:利用指针变量直接改变目标变量的值求解。)

main()

{ int a,b,t,*p1,*p2;

……

printf(″a=%d,b=%d\n″,a,b); printf(″max=%d,min=%d\n″,*p1,*p2);

}

006 班级:姓名:学号:

1.编写程序,输入变量x值,输出变量y的值。

y = ( x -= x * 10 , x /= 10 )

2.输入一个字符,如果是大写字母,则将其转换为小写字母输出,否则直接输出。

main()

{ char ch; printf("Input a character: ");

①; /* 输入字符 */ ②; /* 转换*/③; /* 输出字符 */

}

3.用指向一维数组的指针变量输出数组元素。

main( )

{ int a[ ][4]={0,1,2,3,10,11,12,13,20,21,22,23}; int (*lp)[4], j;

for (lp=a; lp

1.完成下列程序并调试,输入3时,使运行结果为3,4。

main()

{ int x;scanf("%d", &x);x++;printf("%d\n", x);printf("%d, %d\n", ①, ②); }

2.将字符串“china!”存储到一维数组a中。(要求:用标准库函数gets、puts)#define N 10

main()

{ char a[N];①;②; }

3.将10个人的成绩输入计算机后按逆序显示。(要求:用数组完成)

#define N 10

main( )

{ int i;float score[N]; ①; /*输入*/ ②; /*逆序输出*/ }

008 班级:姓名:学号:

1.计算a+b,并在屏幕上显示结果。

void main( )

{ int a,b,sum; ……}

2.调试下列包含有一些错误的程序,使之具有如下功能:输入a、b、c三个整数,求最小值。

main()

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

if((a>b)&&(a>c))

if(b

else printf("min=%d\n",c);

if((a

}

3.用数组方式读入5个整数,并求和。

void main( )

{ int i,data[5],sum=0; printf(“\nPlease enter 5 integer:”); ……printf(“Sum is %d\n”,sum);} 009 班级:姓名:学号:

1.编写程序。已知y=α=60。,求y。

2.用do-while语句编写“在屏幕上输出整数20到50”的程序。

#include "stdio.h"

void main( )

{ int i; ……}

3.利用二级指针输出字符串。

main( )

{ static char *name[ ]={"Zhang","Wang","Li",""}; char **pp=name;

……

1.编写程序,输入变量x值,输出变量y的值。

y = x > 3 && x < 200

2.输入一个数,判断它是奇数还是偶数,如果是奇数则进一步判断它是否为5的倍数。

main( )

{ int x; scanf ("%d",&x);

if ( ①)

{ printf("%d is an odd \n",x) ; if ( ②) printf("%d is the times of 5 \n",x) ; }

③;

}

3.编写程序,求解下列分段函数: x (-5

y= x-1 (x=0)

x+1 (0

100 其它

011 班级:姓名:学号:

1.完成下列程序并调试,输入4时,使运行结果为5,4。

main()

{ int x; scanf("%d", &x); ++x; printf("%d\n", x--);printf("%d, %d\n", ①, ②); }

2.把200~400之间能被9整除的数,以十个数为一行的形式输出,最后输出一共有多少个这样的数。

main( )

{ int n,j=0;

for(n=200;n<=400;n++)

{ if ( ①) continue; printf("%6d",n); ②;

if ( ③) printf("\n");

}

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

}

3.有10个数存放在数组中,从第5个开始逆序存放,

#define N 10

main()

{ int a[N],i,j,num,k,temp ;/*num用来统计交换的次数,k作计数器*/

for(i=0 ;i

for(i=0 ;i

do

{ printf("input the position(0--%d):",②) ;scanf("%d",&i) ;}while(i<0||i>N-1) ;

num= ③;

for(j= ④,k=1 ;k<=num ;i++,j--,k++) {temp=a[i] ;a[i]=a[j] ;a[j]=temp ;} for(i=0 ;i

}

1.完成下列程序并调试,输入2时,使运行结果为2,2。

main()

{ int x;scanf("%d", &x);++x;printf("%d\n", x--);printf("%d, %d\n", ① , ② ); } 2.打印出右图图案。(要求用循环实现)

main()

{ int i ,j ;char space=' '; for(i=0;i<=3;i++)

{ for(j=1; ① ;j++) printf("%c",space); for(j=1;j<=3;j++) printf("*");

for(j=1; ② ;j++) printf("%c",space); for(j=1;j<=3;j++) printf("*"); ③ ; } }

3.用指向一维数组的指针变量输出数组元素。

main( )

{ int a[3][4]={{0,1,2,3},{10,11,12,13},{20,21,22,23}}; int (*lp)[4], i, j; for (lp=a, i=0; i<3; i++)

{ for (j=0; j<4; j++) printf("%4d", ① ); printf("\n"); } }

013 班级: 姓名: 学号:

1.已知圆半径radius=1.5,求圆周长和圆面积。

main()

{ float radius,length,area,pi=3.1415926; radius=1.5;

① ; /*求圆周长*/ ② ; /*求圆面积*/

printf(“radius=%f\n ”,radius); printf(“length=%7.2f,area=%7.2f\n ”,length,area); }

2.打印出右图图案。(要求用循环实现)

main( ) { int i,j;

for ( ① )

{ for ( ② ) printf(" ");

for ( ③ ) printf("*"); printf("\n"); } }

3.编写一交换子函数swap ,完成输入3个整数,按从小到大顺序输出。(要求:用指针做函数参数)

void main( )

{ int a,b,c; scanf("%d%d%d",&a,&b,&c);

if (a>b) swap(&a,&b); if (a>c) swap(&a,&c); if (b>c) swap(&b,&c); printf("%d,%d,%d\n",a,b,c);

****************

1.完成下列程序并调试,输入2时,使运行结果为3,3。

main()

{ int x; scanf("%d", &x);printf("%d\n",++x);printf("%d, %d\n", ①, ②); }

2.输入年份,判别该年是否为闰年。

main( )

{ int year, leap ; scanf("%d", &year);

if ( ①) leap=1; else if ( ②) leap=1; else leap=0;

if ( ③) printf("%d is a leap year \n", year);

else printf("%d is not a leap year \n", year);

}

3.完成选择法排序。

#define N 10

main( )

{ int a[N]; int i,j,t; for (i=0; i

……

printf("The sorted numbers: \n"); for (i=0; i

}

015 班级:姓名:学号:

1.编写程序,输入变量x值,输出变量y的值。

y=

2.编写程序,求100个自然数的和,即:s=1+2+3+ …+100。(要求:用while实现)

3.已有一个已排好序的一维数组(升序),今输入一个数,按原来的规律将它插入到数组中。

#define N 10

main()

{ int a[N+1]={12,23,24,26,35,45,54,57,78,90}; int i,j,x,temp,flag; printf("input a number:");

①;

②; /*输出原数组*/

printf("\n"); i=0;flag=0;

while( ③)

{ if(x

{ temp=x;

for(j=N;j>=i;j--) ④; /*确定插入位置*/

a[i]=temp;

flag=1;

}

i++;

}

if( ⑤) a[i]=x;

⑥; /*输出插入后的数组*/

1.编写程序,输入变量x值,输出变量y的值。

y = 2.4 * x - 1 / 2

2.用for语句编写“在屏幕上输出整数1到20”的程序。

void main( )

{ int i; ……}

3.用指针变量调用函数,完成输出两整数中较大的一个。

main( )

{int max( ),a,b,c; /*声明被调用的目标函数max */

①; /*定义p为指向整型函数的指针变量*/

②; /* 用指针变量存储函数入口地址*/

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

c= ③; /* 用指针变量调用函数*/

printf(“max=%d”,c);

}

max(int x,int y) /* 函数名是函数的入口地址*/

{if(x>y) return(x);

else return(y);

}

017 班级:姓名:学号:

1.完成下列程序并调试,输入4时,使运行结果为4,3。

main()

{ int x; scanf("%d", &x) ;printf("%d\n", x-- );printf("%d, %d\n", ①, ②); }

2.已知x=100,y=15,要求输入一个算术运算符(+、-、* 或/ ),并对x和y进行指定的算术运算。

#include "stdio.h"

main( )

{ float x=100,y=15,z; char op;

op= ① ; /*输入运算符*/

switch (op)

{ case '+': ②; break;

case '-': ③; break;

case '*': ④; break;

case '/': ⑤; break;

default: z=0;

}

if((int)z!=0) printf("%f%c%f=%f\n",x,op,y,z); else printf ("%c is not an operator\n",op);

}

3.完成函数,比较两个整数的关系。

#include

main( )

{ int x, y; printf ("Enter integer X and Y:"); scanf ("%d%d", &x, &y); ……}

018 班级:姓名:学号:

1.完成下列程序并调试,输入4时,使运行结果为5,4。

main()

{ int x; scanf("%d", &x);

x++;

printf("%d\n", --x);

printf("%d, %d\n", ①, ②);

}

2.把100~200之间能被7整除的数,以十个数为一行的形式输出,最后输出一共有多少个这样的数。

main( )

{ int n,j=0;

for(n=100;n<=200;n++)

{ if ( ①) continue;

printf("%6d",n);

②;

if ( ③) printf("\n");

}

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

}

3.完成函数,用辗转相除法求m和n的最大公约数。

main( )

{ int m,n,r;

scanf("%d, %d",&m,&n);

if (m

{ r=m; m=n; n=r; }

……

}

019 班级:姓名:学号:

1.完成下列程序并调试,输入4时,使运行结果为5,5。

main()

{ int x; scanf("%d", &x); x++; printf("%d\n", x);printf("%d, %d\n", ①, ②); } 2.从键盘输入一个小写字母,要求用大小写字母形式输出该字母及对应的ASCII码值。

#include "stdio.h"

main()

{ char c1,c2; printf("Input a lowercase letter: "); c1= ①;

②; /*输出小写字母及对应的ASCII码*/

③; /*将大写字母转换成对应的小写字母*/

printf("%c,%d\n",c2,c2); /*输出大写字母及对应的ASCII码*/

}

main( )

{ int a[4][3],i,j,k; ①; /*输入*/ ②; /*按矩阵形式输出*/ }

020 班级:姓名:学号:

1.完成下列程序并调试,输入4时,使运行结果为4,3。

main()

{ int x; scanf("%d", &x);printf("%d\n", --x );printf("%d, %d\n", ①, ②); }

2.将字符串“china!”存储到一维数组a中。(要求:用指针变量完成)

main()

{ char a[6];char *p; ①;②; }

3.输入某月份的整数值1~12,输出该月份的英文名称。(要求:用数组完成)

main( )

{ int m; char month[ ][15]={"Illegal month.", "January","February", "March", "April", "May", "June", "July", "August","September", "October","Novenber","Decenmber"};

printf("\nInput month:");

……

}

021 班级:姓名:学号:

1.编写程序,输入变量x值,输出变量y的值。y = 2.4 * x3 - 1 / 5

2.将字符串“china!”存储到一维数组a中。(要求:对数组初始化的方法完成)

#define N 6

main()

{ ①;②; printf("\n"); }

3.编写一子函数,计算并输出圆的面积。其主函数如下。

main( )

{ int r,area; scanf("%d",&r); printf("%d\n",s(r)); }

022 班级:姓名:学号:

1.完成下列程序并调试,输入2时,使运行结果为2,3。

main()

{ int x; scanf("%d", &x);x++; printf("%d\n", x);printf("%d, %d\n", ①, ②); }

2.判断输入的某个数m是否为素数。若是素数,输出“YES”,若不是,输出“NO”。

#include "math.h"

main( )

{ int j,m,k; printf("Enter an integer number: "); ①;

for (j=2; ②; j++) if ( ③) break;

printf("%d ",m);

if ( ④) printf("YES\n"); else printf("NO\n");

}

3.将字符串“china!”存储到一维数组a中。(要求:用标准库函数scanf、printf,并且以单个数组元素

main()

{ char a[6];int i;①;②; }

023 班级:姓名:学号:

1.完成下列程序并调试,输入4时,使运行结果为3,4。

main()

{ int x; scanf("%d", &x) ;++x ; printf("%d\n", --x );printf("%d, %d\n", ①, ②); } 2.用while语句编写“在屏幕上输出整数20到50”的程序。

void main( )

{ int i; ……}

3.编一递归函数求x n 。其主函数如下。

main( )

{ int n,x; long y; scanf("%d,%d",&x,&n); y=xn(x,n); printf("%ld\n",y); }

024 班级:姓名:学号:

1.完成下列程序并调试,输入3时,使运行结果为5,4。

main()

{ int x; scanf("%d", &x);x++;printf("%d\n", x);printf("%d, %d\n", ①, ②); }

2.将字符串“china!”存储到一维数组a中。(要求:用标准库函数scanf、printf,并且以字符串处理)main()

{ char a[6];①;②; printf("\n"); }

3.编写函数,冒泡法排序(要求:从小到大排序,设定为6个数排序)。

main( )

{ int a[6]; int i,j,t; for (i=0; i<6; i++) scanf("%d",&a[i]); ……}

025 班级:姓名:学号:

1.请修改下列程序,使其能够正确运行。

#include {stdio.h}

void main( )

{ integer i;long j;printf(“Enter an integer:”) ;scanf(“%d”,&i);j=I*I;printf(“I=%d j=%d\n,j) ;}

2.求一元二次方程ax2+bx+c=0(a≠0)的实数解,不考虑虚根。

#include "math.h"

main()

{ float a,b,c,di sc,x1,x2,p,q; scanf(“%f,%f,%f”, &a, &b, &c); disc=b*b-4*a*c; ……}

3.用数组计算Fibonacci序列(即f(n)=f(n-1)+f(n-2),当n=1或2时,f(n)=1。)的前20项。

#include "stdio.h"

void main( )

{ int i,fib[20]={1,1};

for(i=2;i<20;i++) ①; /* 求数列的前20项存储在数组中*/

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

{ ②; /* 输出数列的前20项*/

相关文档
最新文档