《石油大学C语言在线考试附答案.pdf》由会员分享,可在线阅读,更多相关《石油大学C语言在线考试附答案.pdf(18页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、 第1页 共18页 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;,这执行表达
2、式 a=ab 后,变量 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)!(a0;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,bNN;B)int a12=1,3;C)int c2=1,2,3,4;D)int
3、 d32=1,2,34;第2页 共18页 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
4、.设有定义:int x=0,y=1,z=1;则运行表达式:x=y+z-后,x,y,z 的值分别是())1,1,1 )1,2,0 )0,1,1 )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.下面程序
5、段的输出结果是()int k=11;printf(“%d,%o,%x”,k,k,k);A)11,12,11 B)11,13,13 C)11,013,0 xb 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=j0;26.语句:printf(%d,(a=2)&(b=-2);的输出结果是()A)无输出 B)结果不确定 C)1 D)2 27.设有定义语句:charstr20=Hello,Beijing,*p=str;()则 printf(%d
6、n,strlen(p+20);输出结果是 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 第3页 共18页 void main()int a=10,b=0;if(a=12)a+;b+;else a=a+3;b=b+3;printf(“%d,%dn”,a,b);2.#include void main()ints,i;for(s=0,i=1;i5;i+,s+=i);printf(“%dn”,s);3.#include“stdi
7、o.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(;nk;)n+;if(n%3!=0)continue;k-;printf(%d,%dn,k,n);5.#include 第4页 共18页 int f(int b,intm,i
8、nt n)inti,s=0;for(i=m;i=n;i+=2)s+=bi;return s;void main()intx,a=1,2,3,4,5,6,7,8,9,10;x=f(a,3,8);printf(“%dn”,x);6.#include voidcopy_str(char from,char to)int k=0;while(fromk!=0)tok=fromk;k+;tok=0;/*末尾加上串结束标志*/void main()char str180=”red”,str280=”green”;copy_str(str1,str2);puts(str2);7.#include int d
9、=1;void fun(int p)int d=5;d+=p+;printf(“%d”,d);void main()int a=3;fun(a);d+=a+;printf(%dn,d);8#include void main()第5页 共18页 int i,j;for(i=0;i3;i+)for(j=0;j=i;j+)printf(*);printf(n);9.#include void main()inti;for(i=0;i3;i+)switch(i)case 1:printf(%d,i);case 2:printf(%d,i);default:printf(%d,i);10#includ
10、e intws(int x)if(x/1000)return(3);else if(x/100)return(2);else return(1);void main()int a=123;printf(%d 是%d 位数n,a,ws(a);11.#include#include void main()char a10=abc;char b=defg;第6页 共18页 puts(a);puts(b);puts(strcat(a,b);12.#include void main()int i,n=1,2,3,4,5;for(i=0;i2;i+)ni=n4-i+1;printf(%d,ni);for
11、(i=0;i5;i+)printf(%d,ni);13.#include void main()int a34=1,2,3,4,9,7,10,6,-1,8,-5,5;int i,j,row=0,colum=0,max;max=a00;for(i=0;i=2;i+)for(j=0;jmax)max=aij;row=i;colum=j;printf(max=%d,row=%d,colum=%d,max,row,colum);14.#include voidcopy_str(char from,char to)int k=0;while(fromk!=0)tok=fromk;k+;tok=0;/*末
12、尾加上串结束标志*/void main()第7页 共18页 char str180=good,str280=abcdef;copy_str(str1,str2);puts(str2);15.#include void main()int a=0;a+=(a=8);printf(“%dn”,a);16.#include void main()int x=4;if(x+=5)printf(“%dn”,x);else printf(“%dn”,x-);17.#include#define MAX(a,b)(ab?a:b)+1 void main()int i=6,j=8;printf(“%dn”,M
13、AX(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%dn,m,n,k);第8页 共18页 19.#include void main()inti;for(i=1;i5;i+)if(i%2)putchar();putchar(#);20#include void main()int i,n=1,2,3,4,5;for
14、(i=0;i2;i+)ni=n4-i+1;printf(%d,ni);for(i=0;i5;i+)printf(%d,ni);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(%dn,fun(a,b)/m);22.#include void main()第9页 共18页 int n=2;printf(“%d,%d,%dn”,+n,n+=2,-n);23.#include void main()int x=1,a=0,b=0;switch(x)case 0:b+
15、;case 1:a+;case 2:a+;b+;printf(“a=%d,b=%dn”,a,b);24.#include void main()ints,t,a=-2,b=6;s=t=1;if(a0)s=s+1;if(ab)t=s+t;else if(a=b)t=5;else t=2*s;printf(t=%d,t);25.#include#define S(a,b)(a)*(b)void main()int a=3,area;area=S(a,a+3);printf(area=%dn,area);26.#include void main()inti=0,a=0;while(i20)for(
16、;)if(i%10)=0)break;第10页 共18页 elsei-;i+=11;a+=i;printf(%dn,a);27.#include void main()int aa44=1,2,3,4,5,6,7,8,3,9,10,2,4,2,9,6;inti,s=0;for(i=0;i4;i+)s+=aai2;printf(“%dn”,s);28.#include fun(int a,int b)if(ab)return(a);else return(b);void main()int x=3,y=8,z=6,r;r=fun(fun(x,y),2*z);printf(%dn,r);三、编程题
17、 1.设有分段函数:x (x1)Y=2x-1 (1x10)写一程序,输入 x,输出 y 的值。3x-11 (x10)2编程任意输入两个实数 a 和 b,计算下面函数的值,并输出 y 值。a-b ab y=ba ab a*b a=b 3.编程序求如下分段函数的值 第11页 共18页 23010121xxyxxxxx 4.写一个判断素数的函数。要求在主函数中输入一个整数并输出相应的判断信息。5.编程序计算 s=1!-2!+3!-4!+-10!,并输出结果。6.编写一个函数,将一个字符串(最多 80 个字符)中的大写字母变为小写字母,小写字母变为大写字母。要求字符串的输入与输出在主函数中完成。7.编
18、程计算:s=1+12+123+1234+12345+123456(必须用循环控制语句实现)8.编写函数 change 使输入的字符串按反序存放,在主函数中输入和输出字符串。例如输入是:12345abcde,则输出为:edcba54321 9.编程,在 NN 矩阵中(即 N 行 N 列的数组),求主对角线和次对角线上的各元素之和。10.10 个评委给出某选手打分,编程实现去掉一个最高分和一个最低分,求最后得分(平均分)第12页 共18页 C 语言综合复习资料参考答案 一、单选题 题号 1 2 3 4 5 6 7 8 9 10 答案 C D A A D D D D D C 题号 11 12 13
19、14 15 16 17 18 19 20 答案 C D A C A B C C D A 题号 21 22 23 24 25 26 27 28 答案 D B C B C C C B 二、读程序写出程序执行结果题 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 第13页 共18页 16、5 17、9 18、4 3 1 19、#20、6565345 21、2 22、4,
20、3,1 23、a=2,b=1 24、t=2 25、area=18 26、32 27、29 28、12 三、编程题 1.设有分段函数:x (x1)Y=2x-1 (1x10)写一程序,输入 x,输出 y 的值。3x-11 (x10)#include void main()intx,y;printf(“输入 x:”);scanf(“%dn”,&x);if(x1)y=x;printf(“x=%3d,y=x=%dn”,x,y);else if(xb y=ba ab a*b a=b#include void main()floata,b,y;scanf(“%f,%f”,&a,&b);if(ab)y=a/b
21、;else if(a=b)y=a*b;else y=a-b;printf(“y=%fn”,y);3.编程序求如下分段函数的值 23010121xxyxxxxx#include#include void main()floatx,y;scanf(“%d”,&x);if(x=0)y=fabs(x)+3;else if(x=0)y=1+x*x;else y=2*x+sqrt(x);printf(“x=%f,y=%fn”,x,y);第15页 共18页 4.写一个判断素数的函数。要求在主函数中输入一个整数并输出相应的判断信息。#include void main()intn,i;printf(“plea
22、se enter a integer number,n=?”);scanf(“%d”,&n);for(i=2;i=n-1;i+)if(n%i=0)break;if(in)printf(“%d is not a prime number.n”,n);elseprintf(“%d is a prime number.n”,n);求素数的问题方法有很多,同学们可以到教材或网络上进行查找学习。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
23、*i;sum=sum+njie*k;k=-1*k;printf(%fn,sum);6.编写一个函数,将一个字符串(最多 80 个字符)中的大写字母变为小写字母,小写字母变为大写字母。要求字符串的输入与输出在主函数中完成。#include void main()inti;char a80;gets(a);puts(a);for(i=0;i=65&ai=90)第16页 共18页 ai=ai+32;puts(a);7.编程计算:s=1+12+123+1234+12345+123456(必须用循环控制语句实现)#include void main()longint t=0,s=0,i;for(i=1;
24、i=6;i+)t=i+t*10;s=s+t;printf(”s=%ldn”,s);本题请注意 s 数据类型的定义。8.编写函数 change 使输入的字符串按反序存放,在主函数中输入和输出字符串。例如输入 是:12345abcde,则输出为:edcba54321 void main()char a100;gets(a);change(a);puts(a);#include#include void change(char a)inti,j,k;char temp;k=strlen(a);for(i=0;ik;i+)for(j=i+1;jk;j+)temp=ai;ai=aj;aj=temp;第1
25、7页 共18页 9.编程,在 NN 矩阵中(即 N 行 N 列的数组),求主对角线和次对角线上的各元素之和。#define N 10;main()inti,j;int aNN;int sum=0;for(i=0;iN;i+)for(j=0;jN;j+)scanf(%d,&aij);for(i=0;iN;i+)for(j=0;jN;j+)if(i=j|(i+j=N)/i=j 是判断是否主对角线的元素 i+j=N 是判断是否是次对角线的元素sum+=aij;printf(%d,sum);10.10 个评委给出某选手打分,编程实现去掉一个最高分和一个最低分,求最后得分(平均分)#include int main()int a10,i,max,min;float sum;for(i=0;i10;i+)scanf(%d,&ai);max=a0;min=a0;for(i=1;i=9;i+)if(maxai)min=ai;第18页 共18页 for(i=0;i=9;i+)sum=sum+ai;sum=(sum-max-min)/8;printf(%fn,sum);
限制150内