C语言程序设计复习题_第1页
C语言程序设计复习题_第2页
C语言程序设计复习题_第3页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

C语言期末考试试复习题一、单项选择题在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。以下属于C语言保留字的是(D )fopen C.getD.unsignedC语言中,错误的int类型的常数是( A)A.1E5B.0C.037D.0xaf在C语言中,′a′和″a″存储所占用的字节数分别是(B )A.1,1B.1,2C.2,1D.2,2对于数学表达式,正确的C语言表达式是(C )A.2sqrt(x)+(a+b)/3sin(x) C.2*sqrt(x)+(a+b)/3/sin(x)D.2*sqrt(x)+(a+b/3*sin(x))设intx=10,a=0,b=25;,条件表达式x<1?a+10︰b的值是(D )A.0 B.1C.10 D.25C语言中,下列运算符优先级最高的是( A)! B.%C.>> D.=sizeof(double)是( A)A.函数调用B.int型表达式C.double型表达式 D.非法表达8.设有以下程序段:inta=1,b=10,c=1,x;x=a&&b||++c;printf(″%d,%d\n″,x,c);执行后输出的结果是(D )A.0,0B.0,1C.1,0D.1,1设intx;,则以下语句中错误的输入是(D )scanf(″%d″,x);scanf(″%d″,&x);scanf(″%o″,&x);scanf(″%x″,&x);1设int(*P)();,p的含义是(D A.指向一维数组的指针变量B.指向二维数组的指针变量C.指向一个整型变量的指针变量D.指向整型函数的指针变量在C语言中,运算符″=″和″==″的功能分别是(B A.关系运算和赋值运算 B.赋值运算和关系运算C.都是关系运算D.都是赋值运算12.设intx[]={1,2,3,4,5},*p=x;,则值为3的表达式是(A )A.p+=2,*p++ B.p+=2,C.p+=2,p++ D.p+=2,13.设for(i=0,j=10;(j>0)&&(i<4);i++,j--);,该语句的循环次数是(C )A.0 B.3C.4 D.无限14.floatf1(floata,floatb){return(a+b);}若有floatx=1.1,y=2.2;,则以下语句中正确的函数调用是(D )printf(″%f″,f1(x));printf(″%f″,f1(&x,y));C.printf(″%f″,f1(*x,*y));D.printf(″%f″,f1(x,y));15.结构型变量占用内存的字节数是( AA.各成员占用内存字节数之和B.第一个成员占用的内存字节数C.占用内存最大成员所需的字节数D.最后一个成员占用的内存字节数16.设enumcolor{purple,black,red,white}d;,若将d赋值为枚举常量red,则正确的是(A )A.d=(enumcolor)2;B.d=(enumcolor)3;C.d=″red″; D.d=color;17.若main()函数带参数,参数个数最多是(C A.0 B.1C.2 D.3设宏定义#definePI3.1415926,用宏名PI替换的是( B)A.算术表达式 B.字符串2C.单精度实型数D.双精度实型数调用系统函数fabs时,应选用的文件包含是( DA.#include″stdio.h″B.#include″string.h″C.#include″ctype.h″D.#include″math.h″设main(){ intx=100,a=10,b=20;intv1=5,v2=0;if(a<b)if(b!=15)if(!v1)x=1;x=-1;

else

if(v2)x=10;printf(“%d”,x);}则程序的输出结果是(A )A.-1C.3

B.2D.10组成C语言程序的是(B )A.过程C.子程序编译程序的功能是( C)将汇编语言程序转换为目标程序C.将高级语言程序转换为目标程序D.将高级语言程序转换为汇编语言程序

B.函数D.主程序和子程序C语言中定义某个内部变量时,如果省略了存储类型符,则系统将默认该变量是(A )A.自动型 B.寄存器型C.静态型 D.外部参照型不用第三个变量,将变量a和b的值进行互换的操作是(B )A.a+=b;b-=a;a-=b;C.b-=a;a-=b;a-=b;25.自动型变量分配在( D

B.a+=b;b=a-b;a-=b;D.b-=a;a=b-a;a+=b;A.内存的数据区中 B.CPU的通用寄存器中C.内存的程序区中 D.内存的堆栈区26.下列程序段运行后,x的值是(A )3a=1;b=2;x=0;if(!(--a))x--;if(!b)x=7;elseA.0C.6

B.3D.727.对do-whie语言错误的说法是(C )可构成多重循环结构 B.循环次数不可能为0C.循环次数可能为0 D.先执行后判28.设intx=1,a=9,b=6,c=7,d=8;则执行语句:if(a>b)if(c>d)x=2;elsex=3;后,x的值是( C)B.2C.3 D.不确定设charstr1[10]=″ABCDE″,str2[10]=″XYZ″;printf(″%d″,strlen(strcpy(str1,str2)));后的输出是( A)A.3 B.5C.8 D.9初始化一维数组a正确的语句是(C )A.inta[10]=(0,0,0,0,0); B.inta[10]={};C.inta[]={10} ; D.inta[10]={[10*1]};语句int(*p)();的含义是(A )A.p是一个指向函数的指针变量,该函数的返回值是一个整型数据B.p是指针变量,指向一个整型数据C.p是一个指向一维数据的指针变量D.p是指针函数32.设inta[10],*p=a;则对数组元素的正确引用是( C)A.a[p]C.*(p+2)33.对于程序段{intb;„„}main(){intm,n;m=f1(n);……}charf2(intx,inty){inta;……}

B.p[a]D.p+2floatf1(inta)变量m,n的作用范围是(B )A.整个程序段 B.main函数4C.main函数和f2函数 D.mian函数和f1函数34.若函数中局部变量的值经函数调用后仍保留,则该局部变量定义为(D A.自动变量 B.内部变量C.外部变量 D.静态变量35.在下列运算符中,优先级最低的是(A !C.(enumlist1{x1,x2,x3,x4=6,x5,x6};

•D.[枚举常数x2和x6的值分别是(B )A.1,6 B.1,8C.2,6 D.2,8对于文件操作方式″rb+″,准确的说法是( D)A.可读写文本文件 B.只读二进制文件C.只读文本文件 D.可读写二进制文件数据-324在二进制文件和文本文件中所占的字节数分别是( B)A.2,2C.4,239.设inta=1,b=2,c=4;

B.2,4D.4,4经过表达式(c=a!=b)&&(a==b)&&(c=b)运算后,a、b和c的值分别是( B)A.1,2,0 B.1,2,1C.1,2,2 D.1,2,340.下列程序的运行结果是(D )#defineEVEN(x)x%2==0?1:0main(){if(EVEN(9+1))printf(″iseven″);elseprintf(″isodd″);}isC.无结果

出错D.is二、填空题请在每小题的空格中填上正确答案。错填、不填均无分。1.设chara,b;则表达式a/b-′c′的值的类型为 或者型或者整型 2.设intk=-1;执行printf(″%u″,k);后输出的值是65535 。3.设for(k=0;k<0;k++)++k;则该循环共执行 0 次。设inta=1,b=2经表达式a=a∧b,b=a∧b,a=a∧运算后a,b的值分别是 2或1 。5表示空类型的保留字是 void 。已知程序段:char*p=″abcdefgh″;p+=4;printf(″%c\n″,*p++);运行结果为 e 。设structstudent{intno;charname[12];charsex;floatscore[4];}stu1;在程序执行时,系统为stu1分配 31 个字节的内存空间。写出“n是小于整数m的偶数”的表达式n<m&&n%2==0 。字符串″ABCD\t\\\123″的长度是 7 。设union{intb;chara[9];floatx;}un;则变量un所占的字节数是 9 。C语言中,标准输入设备的文件指针名是 stdin 。一个C语言程序的基本组成单位是 函数 。C语言中,&作为双目运算符表示的运算是 位与 。连接两个字符串的系统函数名是 strcat 。设floata[4][5];,则数组a中第一维下标的最大值是 _3 。16.设charstr[]=″book″;,则执行printf(″%d\n″,sizeof(str));后出的值是 5 。设#defineF(x)x*xmain(){inta=3,b=4,c;c=F(a+b);printf(″%d\n″,c);}则程序执行后输出的值是_19_。设inta;floatb;charc;longd;doublee;,则表达式a/c-b+d-e值的类型是_double_19.设intx=5;x+=x-=x+x;则执行printf(″%d\n″,x);后输出的值是_-10_。20.设6union{inti;longj;chark;}t,*p=&t;则用指针法给t的成员i赋值为20的语句是_p->i=20 三、程序分析题阅读下列程序,将输出结果写到各题右侧的空白处。main(){inti,s=0;for(i=1;i<10;i+=2)s+=i+1;printf(″%d\n″,s);}30main(){intx=15,y=21,z=0;switch(x%3){case0:z++;break;case1:z++;switch(y%2){default:z++;case0:z++;break;}}printf(″%d\n″,z);}1sum(intn){if(n==1)return(1);elsereturnn+sum(n-1);}main(){printf(″%d\n″,sum(10));}55设从键盘输入282sub(intn){ints=1;7do{while(n);returns;}main(){intn;scanf(″%d″,&n);n=sub(n);printf(″%d\n″,n);}32#defineN7#definePRINTfor(i=0;i<N;i++)printf(″%5d″,a[i]);printf(″\n″);main(){inti,j,temp,a[N]={1,2,3,4,5,6,7};PRINTfor(i=0,i<N/2,i++){j=N-1-i;temp=a[i];a[i]=a[j];a[j]=temp;}PRINT}6.intx=30;y=50;sub(x,y){y=x>y?x:y;returny;}main(){{intx=100;printf(″%d\n″,sub(x,y));}printf(″%d,%d\n″,x,y);}8设文件file1.c的内容为COMPUTER#include″stdio.h″main(){FILE*fp;charch;if((fp=fopen(″file1.c″,″r″))==NULL){printf(″Cannotopenfile\n″);exit(0);}while(!feof(fp)){ch=fgetc(fp);if(ch>=′A′&&ch<=′Z′)fputc(ch+32,stdout);}fclose(fp);}main(){inta=0,b=5,c=3;while(c>0&&a<5){b=b-1;++a;c--;}printf(″%d,%d,%d\n″,a,b,c);}3,2,09.intz=5;f(){staticintx=2;inty=5;x=x+2;z=z+5;y=y+z;printf(″%5d%5d\n″,x,z);}main(){staticintx=10;inty;y=z;printf(″%5d%5d\n″,x,z);9f();

printf(″%5d%5d\n″,x,z);f();}105410101061510.voidmain(){ intx=1,y=0,a=0,b=0;switch(x){ case1:switch(y){case0:case1:a++;break;b++;break;}case2:a++;b++;break;case3:a++;b++;}a=2,b=1

}printf(“\na=%d,b=%d”,a,b);四、程序填充题给出下列程序,将横线处缺少的部分补上,使其能正确运行。1.用递归方法写出计算n的阶乘的函数,调用该函数计算并输出n=0,1,2,各阶乘的值。计算公式:n!=longfac(intn){if(n==0||n==1)return(1);/*第一空elsereturn_n*fac(n) ;/*第二空/}main(){intm;longintfa;for(m=0;m<=10;{10 fa=fac(m)_;/*第三空*/printf(″%d!=%1d\n″,m,}}将一个十进制整数nmain(){inti=0,j,n,num[20];scanf(″%d″,);/*第一空*/while(n!=0){num[i++]=;/*第二空*/n= ; /*第三空*/}for(j=i-1;j>=0;j--)printf(″%d″,num[j]);}中输出。main(){uniondata{inta[10];intb ;/*第一空*/};uniondataab;inti,j;for(i=0;i<10,i++)scanf(″%d″, );/*第二空for(i=0;i<2;i++)for(j=0;j<5;j++)printf(″%5d″, );/*第三空*/}main()11{inti,j,a[3][3]={1,2,3,4,5,6,7,8,9},(*p)[3];;/*第一空*/for(i=0;i<3;i++){for(j=0;j<3;j++)printf(″%5d″, );/*第二空*/;/*第三空*/}}main(){inti,j,_a[5][5];/*第一空for(i=0;i<5;i++)for(j=0;j<5;j++)a[i][j]=_i+j_;/*第二空*/for(i=0;i<5;i++){for(j=0;j<5;j++)printf(″%2d″,a[i][j]);_printf("\n")_;/*第三空*/}}用简单选择法对10#include<stdio.h>main(){ inta[11],i,j,k,x;printf("Input10for(i=1;i<11;i++)scanf("%d",&a[i]);printf("\n");for(i=1;i<10;i++){ ;/*第一空*/for(j=_i+1_;j<=10;j++)/*第二空if(_x[j]<x[k_)k=j;/*第三空*/if(i!=k){x=a[i]

温馨提示

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

评论

0/150

提交评论