您好,欢迎来到百家汽车网。
搜索
您的当前位置:首页石油大学 C语言 在线考试附答案

石油大学 C语言 在线考试附答案

来源:百家汽车网
《C语言》综合复习资料

一、单选题

1. C语言中基本数据类型有 ( )

A)整型、实型、逻辑型 B)整型、字符型、逻辑型 C)整型、实型、字符型 D)整型、实型、字符型、逻辑型 2. 在C语言中,数字029是一个( )

A)八进制数 B)十进制数 C)十六进制数 D)非法数 3. 在以下关于C语言的不严格的叙述中,错误的说法是( )

A)在标识符中,大写字母和小些字母的意义相同 B)有些不同类型的变量可以在一个表达式中运算

C)在赋值表达式中等号“=”左边的变量和右边的值可以是不同类型 D)同一个运算符号在不同的场合可以有不同的含义

4. 已知 int a=4,b=5; ,这执行表达式 a=a>b 后,变量a的值为( )

A) 0 B)1 C) 4 D) 5

5. 设有定义 int a=3,b=4,c=5; ,则以下表达式中,值为0的表达式是( )

A) a&&b B) a<=b C) a||b+c&&b-c D) !((aA)x=(1,y=2); B)++x; C)x=y=15; D)y=int(x); 7. 已定义c为字符型变量,则下列语句中正确的是( )

A)c='97'; B)c=\"97\"; C)c=\"a\"; D)c=97; 8. 能将高级语言编写的源程序转换为目标程序的软件是( )

A)汇编程序 B)编辑程序 C)解释程序 D)编译程序

9. 设有定义 char *p=“abcde\\0fghjik\\0”; 则printf(“%d\\n”,strlen(p));输出结果是( )

A) 12 B) 15 C) 6 D) 5 10.以下选项中合法的实型常数是( )

A) 5E2.0 B) E-3 C) .2E0 D) 1.3E 11.以下非法的赋值语句是( )

A) n=(i=2,++i); B) j++; C) ++(i+1); D) x=j>0; 12.已定义c为字符型变量,则下列正确的赋值语句是( )

A)c='66'; B)c=\"66\"; C)c=\"B\"; D)c=66; 13.设a=3,b=4,c=-5,则逻辑表达式:a || b+c&& b==c 的值是( ) A)1 B)0 C)非0 D)语法错 14.以下能正确定义数组并正确赋初值的语句是( )

A)int N=5,b[N][N]; B)int a[1][2]={{1},{3}}; C)int c[2][]= {{1,2},{3,4}}; D)int d[3][2]={{1,2},{34}}; 15.结构化程序设计的三种基本结构是( )

A)顺序结构、选择结构、循环结构 B)if、switch、break C)for、while、do-while D)if、for、continue 16.在一个C程序中( )

A)main函数必须出现在所有函数之前 B)main函数可以在任何地方出现 C)main函数必须出现在所有函数之后 D)main函数必须出现在固定位置 17.以下合法的字符常量是( )

A)‘\\084’

B)‘ab’ C)‘\\x43’

D)“\\0”

18.用8位无符号二进制数能表示的最大十进制数为( ) A)127 B)128 C)255 D)256

19.设有定义:int x=0,y=1,z=1;则运行表达式:x=y++>z--后,x,y,z的值分别是( A) 1,1,1

B) 1,2,0

C) 0,1,1

D) 0,2,0

20.设有int x=11;则表达式(x++*1/3)的值是( )

A) 3 B)4 C) 11 D) 12 21.若有: int x=1,n=5; 则执行语句x%=(n%2)后,x的值为( )

A) 3 B)2 C) 1 D) 0 22.结构化程序的3种基本控制结构是( )

A) if-else结构、while结构、for结构 B) 顺序结构、分支机构、循环结构C) while结构、do-while结构、for结构 D) 以上三种都不对 23.下面程序段的输出结果是( )

int k=11;

printf(“%d,%o,%x”,k,k,k);

A)11,12,11 B)11,13,13 C)11,013,0xb D)11,13,b 24.在微型计算机系统中,存储一个汉字的国标码所需要的字节数是( )

A) 1 B) 2 C) 3 D) 4 25.以下非法的赋值语句是( )

A) n=(i=2,++i); B) j++; C) ++(i+1); D) x=j>0; 26.语句:printf(\"%d\的输出结果是( )

A)无输出 B)结果不确定 C) 1 D) 2 27.设有定义语句:charstr[][20]={\"Hello\ )

则printf(\"%d\\n\输出结果是 A)0 B)5 C)7 D)20 28.以下选项中,与k=++n完全等价的表达式是( )

A) k=n,n=n+1 B) n=n+1,k=n C) k=++n D) k+=n+1

二、读程序,写出程序执行结果

1. #include void main()

)

{ int a=10,b=0; if(a==12)

{a++; b++; } else

{ a=a+3 ; b=b+3;} printf(“%d,%d\\n”,a,b); }

2. #include void main() { ints,i;

for(s=0,i=1;i<5;i++,s+=i) ; printf(“%d\\n”,s); }

3. #include “stdio.h” void main() { char n=‘c’; switch(n++)

{ default: printf(“error!”); break; case ‘a’: case ‘A’:

case ‘b’: case ‘B’: printf(“good!”);break;

case ‘c’: case ‘C’: printf(“pass!”); case ‘d’: case ‘D’: printf(“warm!”);

} }

4. #include

void main() { int k=4,n=0; for( ; nif(n%3!=0) continue; k- -; }

printf(\"%d,%d\\n\}

5. #include int f(int b[],intm,int n) { inti,s=0;

for(i=m;i<=n;i+=2) s+=b[i]; return s; }

void main()

{ intx,a[]={1,2,3,4,5,6,7,8,9,10}; x=f(a,3,8); printf(“%d\\n”,x); }

6. #include

voidcopy_str(char from[ ],char to[ ]) { int k=0; while(from[k]!=‘\\0’) { to[k]=from[k]; }

void main()

{ char str1[80]=”red”,str2[80]=”green”;

copy_str (str1,str2); puts(str2); }

7. #include

int d=1; void fun(int p)

{ int d=5; d+=p++; printf(“%d”,d); }

void main() { int a=3;

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

}

8. #include

void main() { int i,j;

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

k++; }

to[k]=‘\\0’; /*末尾加上串结束标志*/

for(j=0; j<=i;j++) printf(\"*\"); printf(\"\\n\"); } }

9. #include

void main() { inti;

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

{ case 1: printf(\"%d \case 2: printf(\"%d \default :printf(\"%d \

} }

10. #include intws(int x) { if(x/100>0) return(3);

else if(x/10>0 ) return(2); else

return(1); } void main()

{ int a=123;

printf(\"%d是%d位数\\n\; }

11. #include

#include void main()

{ char a[10]=\"abc\";

char b[]=\"defg\"; }

puts(a); puts(strcat(a,b)); puts(b);

12.#include

void main() {

int i,n[]={1,2,3,4,5}; for(i=0;i<2;i++) {

}

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

}

void main()

{ int a[3][4]={{1,2,3,4},{9,7,10,6},{-1,8,-5,5}}; int i,j,row=0,colum=0,max; }

14.#include

voidcopy_str(char from[ ],char to[ ]) { int k=0;

while(from[k]!= ‘\\0’) { }

void main()

{ char str1[80]= \"good\; }

15. #include

copy_str(str1,str2); puts(str2);

to[k]=from[k];

k++; }

to[k]=‘\\0’; /*末尾加上串结束标志*/

max=a[0][0]; for(i=0;i<=2;i++)

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

if(a[i][j]>max) { }

max=a[i][j]; row=i; colum=j;

printf(\"%d \; n[i]=n[4-i]+1; printf(\"%d \;

13.#include

printf(\"max=%d,row=%d,colum=%d\

void main() { int a=0; a+=(a=8); printf(“%d\\n”,a);

}

16. #include

void main() { int x=4; if(x++>=5)

printf(“%d\\n”, x) ; else

printf(“%d\\n”, x--) ;

}

17. #include

#define MAX(a,b) (a>b ? a : b)+1 void main() { int i=6,j=8;

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

18.#include void main()

{ int i,j,m=0,n=0,k=0; for(i=6; i<=9;i++) for(j=2; j<=3;j++)

switch(i%j )

{ case 0: m++; break;

case 1: n++; break; case 2: k++; break; default: k++;n++;m++;

}

printf(\"%d %d %d\\n\}

19. #include void main() { inti; for(i=1;i<5;i++) { if(i%2)

putchar(‘<’); else continue; putchar(‘>’); }

putchar(‘#’); } 20.

{

#include int i,n[]={1,2,3,4,5}; for(i=0;i<2;i++) {

}

for(i=0;i<5;i++) { }

}

21. #include int m=13; int fun(int x,int y)

{ int m=3; return(x*y-m); }

void main() { int a=7, b=5;

printf(\"%d\\n\

}

22. #include

void main() { int n=2;

printf(“%d,%d,%d\\n”, ++n , n+=2 , --n) ;

}

23. #include

void main() { int x=1,a=0,b=0; switch(x)

printf(\"%d \; n[i]=n[4-i]+1; printf(\"%d \;

void main()

{ case 0: b++; case 1: a++; case 2: a++;b++; }

printf(“a=%d,b=%d\\n”,a,b); }

24. #include

void main() { ints,t,a=-2,b=6; s=t=1; if(a>0) s=s+1; if(a>b) t=s+t; else if(a==b) t=5; else t=2*s; printf(\"t=%d \

}

25. #include

#define S(a,b) (a)*(b) void main() { int a=3 ,area; area=S(a,a+3) ; printf(\"area=%d\\n\; }

26. #include

void main() { inti=0,a=0; while(i<20 ) { for(;;)

if((i%10)==0) break; elsei--;

i+=11; a+=i;

}

printf(\"%d\\n\}

27. #include

void main()

{ int aa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}}; inti,s=0 ;

for(i=0;i<4;i++) s+=aa[i][2]; printf(“%d\\n”,s); }

28. #include

fun(int a, int b) { if(a>b) return(a); else return(b); }

void main()

{ int x=3, y=8, z=6, r; r=fun(fun(x,y), 2*z); printf(\"%d\\n\}

三、编程题

1. 设有分段函数:

x (x<1)

Y= 2x-1 (1≤x<10) 写一程序,输入 x,输出 y 的值。

3x-11 (x≥10)

2.编程任意输入两个实数a和b,计算下面函数的值,并输出y值。 a-b a>b y=

a a3.编程序求如下分段函数的值

4.写一个判断素数的函数。要求在主函数中输入一个整数并输出相应的判断信息。 5.编程序计算 s=1!-2!+3!-4!+ …… -10!,并输出结果。

6.编写一个函数,将一个字符串(最多80个字符)中的大写字母变为小写字母,小写字母变为大写字母。要求字符串的输入与输出在主函数中完成。

7.编程计算:s=1+12+123+1234+12345+123456 (必须用循环控制语句实现) 8.编写函数change使输入的字符串按反序存放,在主函数中输入和输出字符串。 例如输入是:12345abcde,则输出为:edcba54321

9.编程,在N×N矩阵中(即N行N列的数组),求主对角线和次对角线上的各元素之和。 10.10个评委给出某选手打分,编程实现去掉一个最高分和一个最低分,求最后得分(平均分)

《C语言》综合复习资料参

一、 单选题 题号 答案 1 C 2 D 12 D 22 B 3 A 13 A 23 C 4 A 14 C 24 B 5 D 15 A 25 C 6 D 16 B 26 C 7 D 17 C 27 C 8 D 18 C 28 B 9 D 19 D 10 C 20 A 题号 11 答案 C 题号 21 答案 D 二、读程序写出程序执行结果题

1、13,3 2、14 3、pass!warm! 4、3,3 5、18 6、red 7、84 8、 * ** 9、011122 10、123是3位数 11、 abc defg abcdefg 12、6565345

13、max=10,row=1,colum=2 14、good 15、16 16、5 17、9

18、4 3 1 19、<><># 20、6565345 21、2 22、4,3,1 23、a=2,b=1 24、t=2 25、area=18 26、32 27、29 28、12

三、编程题

1. 设有分段函数:

x (x<1)

Y= 2x-1 (1≤x<10) 写一程序,输入 x,输出 y 的值。

3x-11 (x≥10)

#include void main() { intx,y;

printf(“输入x:”); scanf(“%d\\n”,&x); if(x<1) {y=x;

printf(“x=%3d,y=x=%d\\n”,x,y); } else if(x<10) {y=2*x-1;

printf(“x=%3d,y=2*x-1=%d\\n”,x,y); } else {y=3*x-11;

printf(“x=%3d,y=3*x-11=%d\\n”,x,y); } }

2.编程任意输入两个实数a和b,计算下面函数的值,并输出y值。

a-b a>b y=

a a#include void main() { floata,b,y;

scanf(“%f,%f”,&a,&b); if(aif(a==b)y=a*b; else y=a-b; printf(“y=%f\\n”,y); }

3.编程序求如下分段函数的值 #include #include void main() { floatx,y; scanf(“%d”,&x); if(x<=0) y=fabs(x)+3; else if(x<1&&x>=0) {y=1+x*x;} else

{y=2*x+sqrt(x); printf(“x=%f,y=%f\\n”,x,y); }

4.写一个判断素数的函数。要求在主函数中输入一个整数并输出相应的判断信息。 #include void main() {intn,i;

printf(“please enter a integer number,n=?”);

scanf(“%d”,&n); for(i=2;i<=n-1;i++) if(n%i==0)break;

if(i求素数的问题方法有很多,同学们可以到教材或网络上进行查找学习。 5.编程序计算 s=1!-2!+3!-4!+ …… -10!,并输出结果。 #include void main() {inti,k=1,njie=1; float sum=0; for(i=1;i<=10;i++) {njie=njie*i; sum=sum+njie*k; k=-1*k; }

printf(\"%f\\n\ }

6.编写一个函数,将一个字符串(最多80个字符)中的大写字母变为小写字母,小写字母变为大写字母。要求字符串的输入与输出在主函数中完成。 #include void main() { inti; char a[80]; gets(a); puts(a); for(i=0;i<80;i++) if(a[i]>=65&&a[i]<=90) a[i]=a[i]+32; puts(a); }

7.编程计算:s=1+12+123+1234+12345+123456 (必须用循环控制语句实现) #include void main() {

longint t=0,s=0,i; for(i=1;i<=6;i++) {t=i+t*10;s=s+t;} printf(”s=%ld\\n”,s); }

本题请注意s数据类型的定义。

8.编写函数change使输入的字符串按反序存放,在主函数中输入和输出字符串。例如输入 是:12345abcde,则输出为:edcba54321 void main() {

char a[100]; gets(a); change(a); puts(a); }

#include #include void change(char a[]) { inti,j,k; char temp; k=strlen(a); for(i=0;itemp=a[i]; a[i]=a[j]; a[j]=temp; } }

9.编程,在N×N矩阵中(即N行N列的数组),求主对角线和次对角线上的各元素之和。 #define N 10; main() { inti,j; int a[N][N]; int sum=0;

for(i=0;iif(i==j||(i+j==N))//i==j是判断是否主对角线的元素i+j==N 是判断是否是次对角线的元素sum+=a[i][j];

printf(\"%d\}

10.10个评委给出某选手打分,编程实现去掉一个最高分和一个最低分,求最后得分(平均分)

#include int main() {

int a[10],i,max,min; float sum; for(i=0;i<10;i++ ) {

scanf(\"%d\ } max=a[0]; min=a[0]; for(i=1;i<=9;i++) {

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

for(i=0;i<=9;i++) {sum=sum+a[i];} sum=(sum-max-min)/8; printf(\"%f\\n\} }

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

Copyright © 2019- baijiahaobaidu.com 版权所有 湘ICP备2023023988号-9

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务