C语言程序设计期末考试试题A_第1页
C语言程序设计期末考试试题A_第2页
C语言程序设计期末考试试题A_第3页
C语言程序设计期末考试试题A_第4页
C语言程序设计期末考试试题A_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上一、选择题(每题1.5分,共计45分)1、以下叙述正确的是【 】AC语言程序是由过程和函数组成的BC语言函数可以嵌套调用,例如:fun(fun(x)CC语言函数不可以单独编译DC语言中除了main函数,其他函数不可作为单独文件形式存在2、以下关于C语言的叙述中正确的是【 】AC语言中的注释不可以夹在变量名或关键字的中间BC语言中的变量可以在使用之前的任何位置进行定义C在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致DC语言的数据常量中夹带空格不影响常量的正常使用3、以下C语言用户标识符中,不合法的是【 】A_1BAaBcCa_bDab4、若有定义:doubl

2、e a=22;int i=0,k=18;,则不符合C语言规定的赋值语句是【 】Aa=a+,i+;Bi=(a+k)<=(i+k);Ci=a%11;Di!a;5、有以下程序include<stdio.h>main() char a,b,c,d;scanf(“%c%c”,&a,&b);c=getchar(); d=getchar();printf(“%c%c%c%cn”,a,b,c,d);当执行程序时,按下列方式输入数据(从第1列开始,<CR>代表回车,注意:回车也是一个字符)12<CR>34<CR>则输出结果是【 】A1234B

3、12C12 3D12 346、以下关于C语言数据类型使用的叙述中错误的是【 】A若要准确无误差的表示自然数,应使用整数类型B若要保存带有多位小数的数据,应使用双精度类型C若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型D若只处理“真”和“假”两种逻辑值,应使用逻辑类型7、若a是数值类型,则逻辑表达式(a= =1)|(a!=1)的值是【 】A1B0C2D不知道a的值,不能确定8、以下选项中与if(a= =1)a=b; else a+; 语句功能不同的switch语句是【 】Aswitch(a)case:a=b;break;default:a+;Bswitch(a= =1)cas

4、e 0:a=b;break;case 1:a+;Cswitch(a)default:a+;break;case 1:a=b;Dswitch(a= =1)case 1 : a=b;break;case 0 : a+;9、有如下嵌套的if语句if (a<b)if(a<c) k=a;else k=c;elseif(b<c) k=b;else k=c;以下选项中与上述if语句等价的语句是【 】 Ak(ab)?a:b; k(bc)?b:c;Bk(ab)?(bc)?a:b:(bc)?b:c);Ck(ab)?(ac)?a:c):(be)?b:c);Dk(ab)?a:b; k=(ac)?a:

5、c;10、有以下程序includestdio.hmain()in i,j,m=1;for(i=1;i3;i+)for(j=3;jO;j-)if(i*j)3)break;m=i*j;printf("m=%dn",m);程序运行后的输出结果是【 】Am=6Bm=2Cm=4Dm=511、有以下程序include(stdio.hmain()int al;b2;for(;a8;a+) b+=a;a+=2;printf("%d,%dn",a,b);程序运行后的输出结果是【 】A9,18B8,11C7,11D10,1412、有以下程序,其中k的初值为八进制数#incl

6、ude <stdio.h>main()int k011;printf("%dn",k+);程序运行后的输出结果是【 】A12B11C10D913、下列语句组中,正确的是【 】Achar *s;s="Olympic"Bchar s7;s="Olympic"Cchar *s;s="Olympic"Dchar s7;s="Olympic"14、以下关于return语句的叙述中正确的是【 】A一个自定义函数中必须有一条return语句B一个自定义函数中可以根据不同情况设置多条return语句

7、C定义成void类型的函数中可以有带返回值的return语句D没有return语句的自定义函数在执行结束时不能返回到调用处15、下列选项中,能正确定义数组的语句是【 】Aint num0.2008;Bint num;Cint N=2008; int numN;D#define N 2008 int numN;16、有以下程序#include <stdio.h>void fun(char *c,int d)*c=*c+1;d=d+1;printf("%c,%c,",*c,d);main()char b='a',a='A';fun(&

8、amp;b,a);printf("%c,%cn",b,a);程序运行后的输出结果是【 】Ab,B,b,ABb,B,B,ACa,B,B,aDa,B,a,B17、若有定义int(*Pt)3;,则下列说法正确的是【 】A定义了基类型为int的三个指针变量B定义了基类型为int的具有三个元素的指针数组ptC定义了一个名为*pt、具有三个元素的整型数组D定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组18、设有定义double a10,*s=a;,以下能够代表数组元素a3的是【 】A(*s)3B*(s+3)C*s3D*s+319、有以下程序include(stdi

9、o.h)main()int a5=1,2,3,4,5,b5O,2,1,3,0,i,s0;for(i0;i5;i+) ss+abi);printf("%dn", s);程序运行后的输出结果是【 】A6B10C11D1520、有以下程序include <stdio.h>main()int b 33=O,1,2,0,1,2,O,1,2,i,j,t=1;for(i=0;i<3;i+)for(j=ij<=1;j+) t+=bibji;printf("%dn",t);程序运行后的输出结果是【 】A1B3C4D921、若有以下定义和语句char

10、 s110="abcd!",*s2="n123"printf("%d %dn", strlen(s1),strlen(s2);则输出结果是【 】A5 5B10 5C10 7D5 822、有以下程序#include <stdio.h>#define N 8void fun(int *x,int i)*x=*(xi);main()int aN=1,2,3,4,5,6,7,8,i;fun(a,2);for(i=O;iN2;i+)printf("%d",ai);printf("n");程序运

11、行后的输出结果是【 】A1313B2234C3234D123423、有以下程序#include <studio.h>int f(int t ,int n);main int a4=1,2,3,4,s;s=f(a,4); printf("%dn",s);int f(int t ,int n) if(n>0) return tn-1+f(t,n-1);else return 0;程序运行后的输出结果是【 】A4B1OC14D624、有以下程序#include <stdio.h>int fun() static int x=1;x*2; return

12、 x;main()int i,s=1,for(i=1;i<=2;i+) s=fun();printf("%dn",s);程序运行后的输出结果是【 】AOB1C4D825、有以下程序#include <stdio.h>#define SUB(a) (a)-(a)main() int a=2,b=3,c=5,d;d=SUB(a+b) *c;printf("%dn",d);程序运行后的输出结果是【 】A0B-12C-20D1026、设有定义:struct complex int real,unreal; data1=1,8,data2;则以下

13、赋值语句中错误的是【 】Adata2=data1;Bdata2=(2,6);Cdata2.real=data1.real;Ddata2.real=data1.unreal;27、有以下程序#include <stdio.h>#include <string.h>struct A int a; char b10; double c;void f(struct A t);main() struct A a=1001,"ZhangDa",1098.0;f(a); printf("%d,%s,%6.1fn",a.a,a.b,a.c);vo

14、id f(struct A t) t.a=1002; strcpy(t.b,"ChangRong");t.c=1202.0;程序运行后的输出结果是【 】A1001,zhangDa,1098.0B1002,changRong,1202.0C1001,ehangRong,1098.OD1002,ZhangDa,1202.0 28、有以下定义和语句struct workers int num;char name20;char c;structint day; int month; int year; s;struct workers w,*pw;pw&w;能给w中year

15、成员赋1980的语句是【 】A*pw.year198O;Bw.year=1980;Cpw->year=1980;Dw.s.year=1980;29、有以下程序#include <stdio.h>main() int a=2,b=2,c=2;printf("%dn",a/b&C;程序运行后的输出结果是【 】AOB1C2D330、有以下程序#include <stdio.h>main() FILE *fp;char str10;fp=fopen("myfile.dat","w");fputs(&quo

16、t;abc",fp);fclose(fp);fpfopen("myfile.data","a+");fprintf(fp,"%d",28);rewind(fp);fscanf(fp,"%s",str); puts(str);fclose(fp);程序运行后的输出结果是【 】AabcB 28cC abc28D因类型不一致而出错二、填空题(每空2分,共30分)1、设x为int型变量,请写出一个关系表达式_,用以判断x同时为3和7的倍数时,关系表达式的值为真。 2、有以下程序#include <stdio

17、.h>main() int a=1,b=2,c=3,d=0;if(a=1)if(b!=2)if(c=3) d=1;else d=2;else if(c!=3) d=3;else d=4;else d=5;printf(“%dn”,d);程序运行后的输出结果是_。3、有以下程序#include <stdio.h>main() int m,n;scanf("%d%d",&m,&n);while(m!=n) while(m>n) m=m-n;while(m<n) n=n-m;printf(“%dn”,m);程序运行后,当输入14 63

18、 <回车> 时,输出结果是_。4、有以下程序#include <stdio.h>main() int i,j,a3=1,2,3,4,5,6,7,8,9;for(i=0;i<3;i+)for(j=i;j<3;j+) printf(“%d%,aij);printf("n");程序运行后的输出结果是_。 5、有以下程序#include <stdio.h>main() int a=1,2,3,4,5,6,*k3,i=0;while(i<3) ki=&a2*i;printf("%d",*ki);i+;程

19、序运行后的输出结果是_。6、有以下程序#include <stdio.h>main() int a33=1,2,3,4,5,6,7,8,9;int b3=0,i;for(i=0;i<3;i+) bi=ai2+a2i;for(i=0;i<3;i+) printf("%d",bi);printf("n");程序运行后的输出结果是_。7、有以下程序#include <stdio.h>#include <string.h>void fun(char *str) char temp;int n,i;n=strlen(

20、str);temp=strn-1;for(i=n-1;i>0;i-) stri=stri-1;str0=temp;main() char s50;scanf("%s",s); fun(s); printf("%sn",s);程序运行后输入:abcdef<回车>,则输出结果是_。 8、以下程序的功能是:将值为三位正整数的变量x中的数值按照个位、十位、百位的顺序拆分并输出。请填空。 #include <stdio.h>main() int x=256;printf("%d-%d-%dn",_ ,x/10%10

21、,x/100); 9、以下程序用以删除字符串所有的空格,请填空。#include <stdio.h>main() char s100="Our teacher teach C language!"int i,j;for(i=j=0;si!=0;i+)if(si!= ' ') sj=si;j+;sj= _printf(“%sn”,s); 10以下程序的功能是:借助指针变量找出数组元素中的最大值及其元素的下标值。请填空。#include <stdio.h>main() int a10,*p,*s;for(p=a;p-a<10;p+)

22、 scanf("%d",p);for(p=a,s=a;p-a<10;p+) if(*p>*s) s=_; printf(“index=%dn”,s-a); 三、程序改错题(10分)下列给定程序中,函数proc的功能是:先从键盘输入一个3行3列的矩阵各个元素的值,然后输出主对角线元素之积,请修函数proc中的错误使其能得出正确的结果。注意不要修改主函数,不要增删程序行或更改程序的结构。#include <stdio.h>void proc() int arr33,mul; int i,j; mul=1; printf(" please input an 3*3 array:n"); for (i=0;i<3;i+) /*第一处错误区*/ for (i=0;j<3;j+) scanf("%d",&arrii); for(i=0;i<3;i+)/*第二处错误区*/ mul=mul*arrij; printf("Mul=%dn",mul);void main() proc();四、程序编写(15分)请补充main函数,该函数实现的功能是把一个二维字符数组中最大的字符拷贝到新的数组

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论