您的当前位置:首页C语言程序设计考试试题

C语言程序设计考试试题

2022-03-09 来源:乌哈旅游
1 Main() {int i;

for(i=10;i<1000;i++) if(i%10==7||i%10==3) printf(“%5d”,i); }

2 main() {int i;

float a=2,b=1,sum=0; for(i=0;i<10;i++) {sum=sum+a/b; a=a+b; b=a-b; }

printf(“%f”,sum) }

3 main()

{float sum=0,k=1,i ; for(i=1;i<=100;i++) {sum=sum+k/I; k=-k; }

printf(“%f”,sum); }

4 main()

{int a[4][4]={1,12,3,4,5,7,8,9,10,11,2,13,14,15,16}; int i,j,min,b[4]; clrscr(); for(i=0;i<4;i++)

{b[i]=a[0][i];

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

if(b[i]>a[j][i]) b[i]=a[j][i]; }

for(i=0;i<4;i++) {printf(\"\\n\");

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

printf(\"%4d\ } printf(\"\\n\\n\"); for(j=0;j<4;j++) printf(\"%4d\5 #include main()

{double x0,x1;

x1=0.0;

do

{x0=x1;

x1=cos(x0);

}while(fabs(x0-x1)>0.000001); printf(\"%lf\}

6 main()

{int a[10],i,max,max_i; for(i=0;i<10;i++) scanf(\"%d\ max=a[0];max_i=0; for(i=0;i<10;i++)

if(maxprintf(\"%5d\

printf(\"\\nmaxi=%d\} 7 main() { int a[10],i,temp; for(i=0;i<10;i++) scanf(\"%d\ for(i=0;i<10;i++)

printf(\"%5d\ printf(\"\\n\");

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

{temp=a[i]; a[i]=a[9-i]; a[9-i]=temp;} for(i=0;i<10;i++) printf(\"%5d\} 8 main()

{char a[80],*p; int i,s=0,c=0,t=0,q=0; clrscr(); gets(a); p=a;

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

{if(*p>='a'&&*p<='z'||*p>='A'||*p>='Z') s++; else if(*p==' ') c++;

else if(*p>='0'&&*p<='9') t++; else q++; p++; }

printf(\"s=%d c=%d t=%d q=%d\ 9 main()

{int i,j,s;

for(i=1;i<1000;i++) {s=0;

for(j=1;jif(s==i)printf(\"\\n%d\ } }

10 main()

{int a[3][3]={1,2,3,4,5,6,7,8,9},i,j,sum=0; for(i=0;i<3;i++) for(j=0;j<3;j++) if(i==j||i+j==2) sum+=a[i][j]; for(i=0;i<3;i++) {printf(\"\\n\"); for(j=0;j<3;j++) printf(\"%4d\printf(\"\\nsum=%d\ 11 float sun(int c) {float s=0; while(c>0) {s+=1.0/c; c=c-2; } return s; } main()

{int n;

scanf(\"%d\ printf(\"%f\12 int sprt(int a) {int k=1,i;

for(i=2;iscanf(\"%d\ for(i=1;iif(sprt(i)&&sprt(b-i))

printf(\"\\n%d=%d+%d\

13 string(char a[]) {int i;

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

if(a[i]>='a'&&a[i]<='z') a[i]=a[i]-32;} main() {char b[80]; gets(b); string(b); puts(b);}

14 void strpocess(char str1[],char str2[]) {int i,t,k;

k=strlen(str1);

for(i=0;i{t=str1[i];str1[i]=str1[k-i-1];str1[k-i-1]=t;} for(i=k,t=0;str2[t]!='\\0';t++,i++) str1[i]=str2[t]; str1[i]='\\0';} main()

{char s[]={\"qwert\ strpocess(s,s1); puts(s); } 15int le;

void new(char str[]) {int i,j=0;

for(i=0;str[i]!='\\0';i++) if(i%2==0) str[j++]=str[i]; str[j]='\\0'; le=j;} main()

{char s[]={\"qwertyu\ puts(s); new(s);

puts(s);

printf(\"%d\16 void sort(char str[]) {int i,j,k;char t; k=strlen(str); for(i=0;istr[j+1])

{t=str[j];str[j]=str[j+1];str[j+1]=t;} } main()

{char s[]={\"zqwertyua\ puts(s); sort(s); puts(s);} 17 main()

{int m,n=0,k,i,j,p; printf(\"input m k\");

scanf(\"%d%d\ for(i=m+1;n{for(j=2;jif(i%j==0) break;

if(j==i){printf(\"%5d\

By 醉雨生 | 阅读全文(1354) | 回复(0) | 引用(0) 关键词: C语言

1.规定一个工人工作时间一月160h,每小时工资5元,加班的话,每小时增加4元,请编程计算此工人一个月的工资,工作时间由键盘输入。 main() {

int t,salary; system(\"cls\");

printf(\"Please input the time:\\n\"); scanf(\"%d\if(t<=160) salary=t*5; else

salary=160*5+(t-160)*9;

printf(\"The salary is:%d\\n\}

2.输入30个整数,统计出其中正整数个数,负整数个数及0的个数,并分别求出所有负整数与所有正整数的和,最后求出全部数字绝对值之和。 #include \"math.h\"

main() {

int a[30],p=0,n=0,z=0,sum=0,i,sumn=0,sump=0; system(\"cls\");

printf(\"Please intput 30 numbers:\\n\"); for(i=0;i<30;i++) scanf(\"%d\for(i=0;i<30;i++) {

if (a[i]>0)

p=p++;sump=sump+a[i]; else if(a[i]<0)

n=n++;sumn=sumn+a[i]; else z=z++; }

for(i=0;i<30;i++) sum=sum+fabs(a[i]);

printf(\"The plus number and the addition is:%d,%d\\n\printf(\"The nagative number and the addition is:%d,%d\\n\printf(\"The zero number is:%d\\n\

printf(\"The sum of the absolute value is:%d\\n\}

3.s=a+a*a+a*a*a+...+a*a*...*a(n个a),k=sqrt(s);t=1-1/2+1/3-1/4+...+1/k,a和n值由键盘输入,求t值。 #include \"math.h\" main() {

int k,s=0,n,i,a,j=1,q=1;

float t=0; system(\"cls\");

printf(\"Please input the value of a and n:\\n\"); scanf(\"%d%d\for(i=0;ik=sqrt(s);

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

t=t+q*(1.0/i); q=-q; }

printf(\"The value of s is:%d\\n\printf(\"The value of k is:%d\\n\printf(\"the value of t is:%f\\n\}

4.n!,sum=n!+(n+1)!+(n+2)!+...+m!,n,m值由键盘输入,要求调用函数。 调用函数: fac(int n) {

int i,su=1; for(i=1;i<=n;i++) su=su*i; return(su); } main() {

int m,n,i; long int sum=0; system(\"cls\");

printf(\"Please input the value of n and m:\\n\"); scanf(\"%d%d\for(i=0;i<=(m-n);i++) sum=sum+fac(n+i); printf(\"Sum is:%ld\}

5.输入20个学生的成绩,求出其中大于平均成绩学生的人数,并对成绩按从高到低进行排序。 main() {

int p=20,i,k=0,j;

float ave,a[20],t,sum=0; system(\"cls\");

printf(\"Please input the score of the students:\\n\"); for(i=0;iif(a[i]>ave) k++; }

for(i=0;i{

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

printf(\"students above the average score and the average score:%d,%.1f\\n\

printf(\"The score from up to down is:\\n\"); for(i=0;i万州国本中学 05 至 06 学年度 一 学期 《C语言程序设计基础》课程 期末 考试试题A卷

命题人 使用年级及专业 2006级计算机班考试用时 60分钟,满分:90分 闭卷

班级 学号 姓名 题号 得分 复核人 一 二 三 四 五 六 七 八 九 十 总分 注 :本试卷第二题 选择判断题的答案必须填入下表中,否则该题不得分! 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 一、填空题(10分)

1、设X为int型变量,请写出描述“X是偶数”的表达式是: 。 2、C语言中的基本数据类型分为 型, 型和字符型.

3、在数组 int score[10]={1,2,3,4,5,6}中,元素定义的个数有 个,其中score[8]的值为 。

4、continue 语句是用来结束 循环的。

5、循环语句:for(i= - 1;i<3;i++)printf(“!”);的循环次数是: 。 6、程序中经常要使用常量3.14,我们用符号run 来表示,其定义格式为 。

7.C语言提供的三种逻辑运算符是 、 和!; 二、单选(30分)

1、以下数组定义正确的是___

A、int a [oxCF]; B. char 8th[10]; C. char ch [-100]; D. float f (10); 2 、四种运算中,优先级最高的运算符是( ) A、&& B、>= C、== D、++ 3、设有程序段: int x=8; while (x=0) x=x-1

则下列描述正确的是____

A、while循环将执行10次 B、while循环将执行无限次 C、while循环将一次也不执行 D、while循环将执行1次0. 4、程序运行结果的正确的是___ main( )

{ int a = - 1, b=4, k;

k=(a + + < = 0)&&( ! (b - - < =0)); printf ( \"% d % d % d \\ n \

A、0 0 3 B. 0 1 2 C. 1 0 3 D. 1 1 2

5、已知 scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);则正确的输入形式是 A) a=12 b=24 c=36 B) 12,24,36 C) a=12,b=24,c=36 D) 12 24 36 6、程序片段执行后输出结果是___ int x=100, y=200;

printf (\"% d\

A、100 B、200 C、100,200 D、编译出错

7、在C语言中,下列数据按存储空间的大小排列顺序正确的是 。 A ’5’<5<5L B ’55’=5<5L C ’55’<5=5L D ’5’=5=5L 8、不是C语言基本数据类型的是___ A、指针类型 B、整型 C、无符号长整型 D、单精度型

9、设有:int a=3, b= 4, c= 5,x , y; 执行 !(x=a)&&(y=b)&&0表达式的值为 。 A、1 B、0 C、3 D、4

10、设有语句 int a=3 ; 则执行了语句 a+ = a - = a * a后,变量a 的值是_ 。 A、3 B、0 C、9 D、-12 11.有如下的程序段,其输出正确的 。

int m=30; {int m=20; m++;

printf(“%d”,m); }

m++;

printf(“%d”,m);

(A)21,22 (B)31,32 (C)21,31 (D)20,30 12、“基本结构”不具有以下特点:____。

A、只有一个入口,只有一个出口 B、没有死循环 C、没有永远执行不到的语句 D、不允许跳出循环 13、分别输入6和5,程序运行结果正确的是____。 main( )

{ int x ; scanf (\"% d\ if (x - - > 5) printf (\" % d\ else printf (\" % d\

A、5 5 B. 6 6 C. 6 4 14、执行下列程序段后,结果为____。 n = 0;

while ( + + n < 4) prindtf ( \" % 2d\

A. 0 1 2 3 4 B. 0 1 2 3 C. 1 2 3 15. putchar涵数可以向终端输出一个___。 A、整型变量表达式值 B、实型变量值 C、字符串 D、字符或字符变量值 三、写出程序运行结果(每题3分,共18分) 1、若从键盘上输入10,则输出是 main () { int a;

scanf(“%d”,&a); if (a++>10) printf (“%d \\ n”,++a); else printf (“%d \\ n”,a--); }

运行结果:

2、main( )

{ int m=5;

D. 5 4 D. 1 2 3 4 if (m++>5)printf(“%d\\n”,m); else printf(“%d\\n”,m--);}

运行结果是:

3、有下面程序段: int i,j,r;

for(i=20,j=7;r=i%j;i=j,j=r) continue; printf(“%3d ”,j);

运行结果是:

4、#include main( )

{ int x,y,z=2; x=z++;

y=++z;

printf(“%d %d %d”,x,y,z); }

5. main( ) {

int a, b ;

scanf ( \" % d \ & a , ); scanf ( \" % d \ & b ); swap ( a, b ); }

swap ( int a, int b ) {

int t ;

t = a; a = b; b= t; printf ( \" a = % d ,b= % d\\ n \ }

运行时输入:100,200

6. #include main( )

运行结果:

运行结果: {char ch=’*’;

int i,j;

for (i=1;i<=3;i++) {for(j=1;j<=i;j++) printf(“%c”,ch); printf(“\\n”);} }

运行结果: 四、程序填空(每空2分,共16分) 1、 1 2 4 3 6 9

4 8 12 16 #include < stdio.h> ______________________ main( ) { int i, j ; {

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

_____________________ _____________________ } }

2、在5个中,找出最大的元素及位置: _____________________________ main ( ) {

int a [ size ] = [ 3, 8, 7, 6,5 ] int max, pos ; int i; ______________________________

pos = 0 ;

______________________________ if ( a [ i ]> max ) {

max = a [ i ];

_____________________________ }

五、编程:(1题、2题各8分,共16分) 1、求2--100的质数。

2、从键盘上输入任意一些整数,统计正数的个数及其和,负数的个数其和,以及零的个数,直到值为999时结束。05-06

年下半学期《C语言程

序设计》期末考试卷(A)

(120分钟、闭卷)

系别﹍﹍﹍﹍专业﹍﹍﹍﹍班级﹍﹍﹍﹍姓名﹍﹍﹍﹍学号﹍﹍﹍﹍ ………………………………………………………………………………………………………..

一、单项选择题(本大题共17小题,每小题2分,共34分)在每小题

列出的四个选项中只有一个选项符合题目要求的,请将正确选项前的字母填在题后的括号内。 1. 以下叙述不正确的是( )。

A、C程序书写格式规定,一行内只能写一个语句

B、main( )函数后面有一对花括号,花括号内的部分称为函数体 C、一个C程序必须有main( )函数 D、C规定函数内的每个语句以分号结束

2. C 语言的跳转语句中,对于break和continue说法正确的是() A、break语句只应用与循环体中 B、continue语句只应用与循环体中 C、break是无条件跳转语句,continue不是

D、break和continue的跳转范围不够明确,容易产生问题

3. 以下正确的字符常量是( )。 A、’abc’ B、”1” C、’\’

D、’字’

4. 以下各标识符中,合法的函数名是( )。

A、A#C B、_mystery C、struct D、1A

5. 在以下一组运算中,优先级最高的运算符是( )。 A、<= B、+= C、% D、!

6. 以下程序的输出结果是 main( )

{ int i=010,j=10,k=x10;  printf(\"%d,%d,%d\\n\}

A、8,10,16 B、8,10,10 C、10,10,10 D、10,10,16

7. 执行下面程序段后,y的结果是( )。 int x,y; x=y=3;

x=x-2||(y=y-1); printf(\"%d\

A、3 B、2 C、1 D、0

8. 指针s所指字符串的长度( )。  char *s=\"\\\ \"Name\\ \\ Address \\n\";

A、说法不合法 B、19 C、18 D、15

9. 以下程序执行后的sum值是( )。 main() {

int i,sum;

for(i=1;i<6;i++) sum+=i; printf(\"%d\\n\}

A、15 B、14 C、不确定 D、0

10.以下代码用来对函数进行定义,正确的函数形式是( )。 A、double fun(int x, int y)

{ z=x+y; return (z); } B、fun (x, y)

{int z ;

return z; } C、double fun (int x, int y)

{ double z ;

Z=x+y ; return z; } D、fun (x, y)

{ int x, y; double z;

z=x+y; return z; }

11.若有如下定义:

Char s[20], *ps=s;

则,以下赋值语句正确的是( )。

A、s=ps+s; B、ps=ps+20; C、s[5]=ps[9]; D、ps=s[0];

12.以下程序的输出结果是( )。 # include Void main()

{

int *p, b, a; a=2000,b=8;

p=&a; p=p+1;

printf(“%d\\n”, *p); }

A、2000 B、2001 C、2008 D、不确定

13.有数组定义语句如下:

Static int arr[20][30];

若要表示数组元素arr[9][0]的地址,除可以使用&arr[9][0]的表示形式之外,还可以使用其他的表示形式。在以下表示形式中错误的是( )。 A、arr[9] B、arr+9*30 C、*(arr+9) D、&arr[0][0]+9*30

14.有定义如下:

Struct info; {

Char name[20]; Int age;

};

Struct info class[6]={“Zhang”, 17, ”Wang”, 19, ”Mao”, 18, “liu”,

16};

下列能输出字母”M”的选项是( )。 AC

、、

printf(“%c\\n”,class[3].name);

BD

、、

printf(“%c\\n”,class[3].name[1]);

printf(“%c\\n”,class[2].name[0]);

printf(“%c\\n”,class[2].name[1]);

15.已知fp为文件类型指针,若要打开e盘text文件夹(目录)下的

word.dat文件,下面各选项中正确的是( )。 A、fp=fopen(e:text\\word.dat,”r”) B、fp=fopen(e:\\\ext\\\\word.dat,”r”)

C、fp=fopen(“e:\\\ext\\word.dat”,”r”) D、fp=fopen(“e:\\\ext\\\\word.dat”,”r”)

16.以下程序输出结果是( )。 #include Main()

{

Enum {a , b=3, c, d, e, f, g} m; m=d

printf(“%d\\n”,m); }

A、 0 B、3 C、4 D、5

17.执行下列程序后的输出结果是( )。 #include .

Main()

{

Int a=0x17, b=0xf6; Printf(“%x\\n”, a^b); }

A、16 B、e1 C、f6 D、e7

二、程序填空(本大题共3小题,8个空白,每个空白3分,共24分)

在每小题标记的空白处填入适当的语句或表达式,使程序完成所实现的功能。

1. 利用如下公式可以求得π的近似值:

π/2=1+1/3+(1/3)*(2/5)+(1/3)*(2/5)*(3/7)+(1/3)*(2/5)*(3/7)*(5/9)„

下面是利用上述公式,计算∏的近似值的一个函数,要求满足的精

度为e。请根据算法要求,在横线位置填上适当的代码。 Double fun(double e) {

Double m=0.0, t=1.0; Int n;

for(﹍﹍①﹍﹍; t>e ; n++) {

m=m+t;

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

Return (2.0 *﹍﹍②﹍﹍ ); }

2. 以下是一个函数定义,a数组对应一个升序的数列,binary()的功能是:应用折半查找法从存有10个整数的a数组中对关键字m进行查找,若找到,返回其下标值;反之,返回-1。请在程序的横线上填上适当的代码。 Int binary( int a[10], int m) {

int low=0, high=9, mid; while (low<=high) {

mid=(low+high)/2;

if (ma[mid]) ﹍﹍④﹍﹍;

else return (mid); }

Return(-1); }

3. 在下面的程序中,min_lenth( )函数的功能是求一组字符串中长度最小的字符串,函数返回值是该最小字符串的地址。主函数main( )中调用min_lenth( )函数,然后输出给定一组字符串中最小的字符串。

请按照程序功能,在横线位置填上适当的代码。

#include #include Main( ) {

Char *min_lenth(char *[ ], int n);

Char *ps[4]={“zhangguoliang”, “liuli”, “dengdawei”, “huxiaoli” }; Char ﹍﹍⑤﹍﹍;

p=min_lenth(﹍﹍⑥﹍﹍, 4); Puts(p); }

Char *min_lenth(char *s[ ], int n) {

Int i, poison, lenth; poison=0;

lenth=strlen(s[0]); for(i=1;iif(strlen(s[i])﹍﹍⑦﹍﹍; poison=i; }

Ruturn(﹍﹍⑧﹍﹍);

}

三、程序阅读(本大题共4小题,每小题5分,共列各程序,按要求写出各程序的输出结果。1. 执行下面程序后的输出结果是﹍﹍﹍﹍。 #include Int sum (int); main() {

int i, k;

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

20分)认真阅读下

k=sum( i );

printf(“\\n 1+2+„+%2d=%2d \\n”, i-1, k); }

Int sum (int x) {

Static int s=0; s=s+x;

return s; }

2. 以下程序的输出结果是﹍﹍﹍﹍。 #include main() {

Char *s[ ]={“one”, “two”, “three”}, *p; p=s[1];

printf(“%c,%s \\n”, *(p+1), s[0]); }

3. 执行下列程序后,输出结果是﹍﹍﹍﹍。

Struct stu {

Int num;

Char name[10]; Int age; };

Void fun( struct stu *p) {

Printf(“%s\\n”, (*p).name); }

main() {

Struct stu students[3]={ {9801, “Zhang”, 20}, {9802, “Wang”, 19}, {9803, “Zhao”, 18} }; fun (students+1); }

4. 下面程序执行后的输出结果是﹍﹍﹍﹍。 #define N 4

#define M N+2 #define K M*M/2

main() {

Int i; i=N+M+K;

printf(“%d\\n”, i ); }

四、根据要求编写程序(本大题共3小题,第1小题 7分,第2小题

10分,第三小题5分,共22分)。 1. 编写函数求

│x-1│+1.3 当 x < 3 时 fun2(x)= 10 当 x = 3 时 sinx + 0.1 当 x > 3 时

2. 有3名学生,每个学生包括学号、姓名、成绩,其数据由键盘输入。要求按成绩从高到低的顺序输出学生学号、姓名和成绩。(用结构体实现学生信息)

3. 打印右三角形的九九乘法表。

05-06年下半学期《C语言程序设计》期末考试卷(A)

参考答案

一、选择题

1、A 2、B 3、C 4、B 5、D 6、A 7、A 8、D 9、C 10、C 11、C 12、D

13、B 14、C 15、D 16、D 17、B

二、程序填空

1、① n=1 ② m

2、③ high=mid-1 ④ low=mid+1

3、⑤ *p ⑥ ps ⑦lenth=strlen(s[i]) ⑧s[poison]

三、程序阅读

1、1+2+…+10=55 2、w,one 3、Wang 4、23

四、编写程序

1、

float fun(float x) {

float y; if(x<3)

y=fabs(x-1)+1.3; else if(x>3)

y=sin(x)+0.1; else

y=10; return y; } 2、

#include #define N 3 struct student {

int num;

char name[10]; int score; };

main() {

struct student stu[N]; struct student temp; int i,j;

for(i=0;i{ printf(\"Enter num:\");

scanf(\"%d\ printf(\"Enter name:\");

/* getchar(); */

scanf(\"%s\ /* gets(stu[i].name);*/ printf(\"Enter score:\"); scanf(\"%d\ }

for(i=1;ifor(j=0;jif(stu[j].scoretemp=stu[j]; stu[j]=stu[j+1]; stu[j+1]=temp; }

for(i=0;iNum:%d,Name:%s,Score:%d\\n\} 3、

#include main() {

int i,j;

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

for(j=1;j<=7*(9-i);j++) putchar('');

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

printf(\"%1d*%1d=%-2d \ printf(\"\\n\"); } }

因篇幅问题不能全部显示,请点此查看更多更全内容