石油大学 C语言 在线考试附答案 2.docx
- 文档编号:10789276
- 上传时间:2023-02-22
- 格式:DOCX
- 页数:24
- 大小:26.19KB
石油大学 C语言 在线考试附答案 2.docx
《石油大学 C语言 在线考试附答案 2.docx》由会员分享,可在线阅读,更多相关《石油大学 C语言 在线考试附答案 2.docx(24页珍藏版)》请在冰豆网上搜索。
石油大学C语言在线考试附答案2
《C语言》综合复习资料
一、单选题
1.C语言中基本数据类型有()
A)整型、实型、逻辑型B)整型、字符型、逻辑型
C)整型、实型、字符型D)整型、实型、字符型、逻辑型
2.在C语言中,数字029是一个()
A)八进制数B)十进制数C)十六进制数D)非法数
3.在以下关于C语言的不严格的叙述中,错误的说法是()
A)在标识符中,大写字母和小些字母的意义相同
B)有些不同类型的变量可以在一个表达式中运算
C)在赋值表达式中等号“=”左边的变量和右边的值可以是不同类型
D)同一个运算符号在不同的场合可以有不同的含义
4.已知inta=4,b=5;,这执行表达式a=a>b后,变量a的值为()
A)0B)1C)4D)5
5.设有定义inta=3,b=4,c=5;,则以下表达式中,值为0的表达式是()
A)a&&bB)a<=bC)a||b+c&&b-cD)!
((a
c||1)
6.以下不合法的赋值语句是()
A)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)12B)15C)6D)5
10.以下选项中合法的实型常数是()
A)5E2.0B)E-3C).2E0D)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)1B)0C)非0D)语法错
14.以下能正确定义数组并正确赋初值的语句是()
A)intN=5,b[N][N];B)inta[1][2]={{1},{3}};
C)intc[2][]={{1,2},{3,4}};D)intd[3][2]={{1,2},{34}};
15.结构化程序设计的三种基本结构是()
A)顺序结构、选择结构、循环结构B)if、switch、break
C)for、while、do-whileD)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)127B)128C)255D)256
19.设有定义:
intx=0,y=1,z=1;则运行表达式:
x=y++>z--后,x,y,z的值分别是()
A)1,1,1B)1,2,0C)0,1,1D)0,2,0
20.设有intx=11;则表达式(x++*1/3)的值是()
A)3B)4C)11D)12
21.若有:
intx=1,n=5;则执行语句x%=(n%2)后,x的值为()
A)3B)2C)1D)0
22.结构化程序的3种基本控制结构是()
A)if-else结构、while结构、for结构B)顺序结构、分支机构、循环结构
C)while结构、do-while结构、for结构D)以上三种都不对
23.下面程序段的输出结果是()
intk=11;
printf(“%d,%o,%x”,k,k,k);
A)11,12,11B)11,13,13C)11,013,0xbD)11,13,b
24.在微型计算机系统中,存储一个汉字的国标码所需要的字节数是()
A)1B)2C)3D)4
25.以下非法的赋值语句是()
A)n=(i=2,++i);B)j++;C)++(i+1);D)x=j>0;
26.语句:
printf("%d",(a=2)&&(b=-2));的输出结果是()
A)无输出B)结果不确定C)1D)2
27.设有定义语句:
charstr[][20]={"Hello","Beijing"},*p=str;()
则printf("%d\n",strlen(p+20));输出结果是
A)0B)5C)7D)20
28.以下选项中,与k=++n完全等价的表达式是()
A)k=n,n=n+1B)n=n+1,k=nC)k=++nD)k+=n+1
二、读程序,写出程序执行结果
1.#include
voidmain()
{inta=10,b=0;
if(a==12)
{a++;b++;}
else
{a=a+3;b=b+3;}
printf(“%d,%d\n”,a,b);
}
2.#include
voidmain()
{ints,i;
for(s=0,i=1;i<5;i++,s+=i);
printf(“%d\n”,s);
}
3.#include“stdio.h”
voidmain()
{charn=‘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
voidmain()
{intk=4,n=0;
for(;n {n++; if(n%3! =0)continue; k--; } printf("%d,%d\n",k,n); } 5.#include intf(intb[],intm,intn) {inti,s=0; for(i=m;i<=n;i+=2)s+=b[i]; returns; } voidmain() {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(charfrom[],charto[]) {intk=0; while(from[k]! =‘\0’) {to[k]=from[k];k++;} to[k]=‘\0’;/*末尾加上串结束标志*/ } voidmain() {charstr1[80]=”red”,str2[80]=”green”; copy_str(str1,str2); puts(str2); } 7.#include intd=1; voidfun(intp) {intd=5; d+=p++; printf(“%d”,d); } voidmain() {inta=3; fun(a);d+=a++; printf("%d\n",d); } 8.#include voidmain() {inti,j; for(i=0;i<3;i++) { for(j=0;j<=i;j++) printf("*"); printf("\n"); } } 9.#include voidmain() {inti; for(i=0;i<3;i++) switch(i) {case1: printf("%d",i); case2: printf("%d",i); default: printf("%d",i); } } 10.#include intws(intx) {if(x/100>0) return(3); elseif(x/10>0) return (2); else return (1); } voidmain() {inta=123; printf("%d是%d位数\n",a,ws(a)); } 11.#include #include voidmain() {chara[10]="abc"; charb[]="defg"; puts(a); puts(b); puts(strcat(a,b)); } 12.#include voidmain() {inti,n[]={1,2,3,4,5}; for(i=0;i<2;i++) {n[i]=n[4-i]+1; printf("%d",n[i]); } for(i=0;i<5;i++) printf("%d",n[i]); } 13.#include voidmain() {inta[3][4]={{1,2,3,4},{9,7,10,6},{-1,8,-5,5}}; inti,j,row=0,colum=0,max; 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("max=%d,row=%d,colum=%d",max,row,colum); } 14.#include voidcopy_str(charfrom[],charto[]) {intk=0; while(from[k]! =‘\0’) {to[k]=from[k];k++;} to[k]=‘\0’;/*末尾加上串结束标志*/ } voidmain() {charstr1[80]="good",str2[80]="abcdef"; copy_str(str1,str2); puts(str2); } 15.#include voidmain() {inta=0; a+=(a=8); printf(“%d\n”,a); } 16.#include voidmain() {intx=4; if(x++>=5) printf(“%d\n”,x); else printf(“%d\n”,x--); } 17.#include #defineMAX(a,b)(a>b? a: b)+1 voidmain() {inti=6,j=8; printf(“%d\n”,MAX(i,j)); } 18.#include voidmain() {inti,j,m=0,n=0,k=0; for(i=6;i<=9;i++) for(j=2;j<=3;j++) switch(i%j) {case0: m++;break; case1: n++;break; case2: k++;break; default: k++;n++;m++; } printf("%d%d%d\n",m,n,k); } 19.#include voidmain() {inti; for(i=1;i<5;i++) {if(i%2) putchar(‘<’); else continue; putchar(‘>’); } putchar(‘#’); } 20.#include voidmain() {inti,n[]={1,2,3,4,5}; for(i=0;i<2;i++) {n[i]=n[4-i]+1; printf("%d",n[i]); } for(i=0;i<5;i++) {printf("%d",n[i]); } } 21.#include intm=13; intfun(intx,inty) {intm=3; return(x*y-m); } voidmain() {inta=7,b=5; printf("%d\n",fun(a,b)/m); } 22.#include voidmain() {intn=2; printf(“%d,%d,%d\n”,++n,n+=2,--n); } 23.#include voidmain() {intx=1,a=0,b=0; switch(x) {case0: b++; case1: a++; case2: a++;b++; } printf(“a=%d,b=%d\n”,a,b); } 24.#include voidmain() {ints,t,a=-2,b=6; s=t=1; if(a>0)s=s+1; if(a>b)t=s+t; elseif(a==b)t=5; elset=2*s; printf("t=%d",t); } 25.#include #defineS(a,b)(a)*(b) voidmain() {inta=3,area; area=S(a,a+3); printf("area=%d\n",area); } 26.#include voidmain() {inti=0,a=0; while(i<20) {for(;;) if((i%10)==0)break; elsei--; i+=11; a+=i; } printf("%d\n",a); } 27.#include voidmain() {intaa[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(inta,intb) {if(a>b)return(a); elsereturn(b); } voidmain() {intx=3,y=8,z=6,r; r=fun(fun(x,y),2*z); printf("%d\n",r); } 三、编程题 1.设有分段函数: x(x<1) Y=2x-1(1≤x<10)写一程序,输入x,输出y的值。 3x-11(x≥10) 2.编程任意输入两个实数a和b,计算下面函数的值,并输出y值。 a-ba>b y= a a*ba=b 3.编程序求如下分段函数的值 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 2 3 4 5 6 7 8 9 10 答案 C D A A D D D D D C 题号 11 12 13 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 16、5 17、9 18、431 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 voidmain() { intx,y; printf(“输入x: ”); scanf(“%d\n”,&x); if(x<1) {y=x; printf(“x=%3d,y=x=%d\n”,x,y); } elseif(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-ba>b y= a a*ba=b #include voidmain() { floata,b,y; scanf(“%f,%f”,&a,&b); if(a y=a/b; else if(a==b)y=a*b; elsey=a-b; printf(“y=%f\n”,y); } 3.编程序求如下分段函数的值 #include #include voidmain() { floatx,y; scanf(“%d”,&x); if(x<=0) y=fabs(x)+3; elseif(x<1&&x>=0) {y=1+x*x;} else {y=2*x+sqrt(x); printf(“x=%f,y=%f\n”,x,y); } 4.写一个判断素数的函数。 要求在主函数中输入一个整数并输出相应的判断信息。 #include voidmain() {intn,i; printf(“pleaseenteraintegernumber,n=? ”); scanf(“%d”,&n); for(i=2;i<=n-1;i++) if(n%i==0)break; if(i elseprintf(“%disaprimenumber.\n”,n); } 求素数的问题方法有很多,同学们可以到教材或网络上进行查找学习。 5.编程序计算s=1! -2! +3! -4! +……-10! ,并输出结果。 #include voidmain() {inti,k=1,njie=1; floatsum=0; for(i=1;i<=10;i++) {njie=njie*i; sum=sum+njie*k; k=-1*k; } printf("%f\n",sum); } 6.编写一个函数,将一个字符串(最多80个字符)中的大写字母变为小写字母,小写字母变为大写字母。 要求字符串的输入与输出在主函数中完成。 #include voidmain() { inti; chara[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 voidmain() { longintt=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 voidmain() { chara[100]; gets(a); change(a); puts(a); } #include #include voidchange(chara[]) { inti,j,k; chartemp; k=strlen(a); for(i=0;i for(j=i+1;j { temp=a[i]; a[i]=a[j]; a[j]=temp; } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 石油大学 C语言 在线考试附答案 语言 在线 考试 答案