《C语言考试考试复习题.docx》由会员分享,可在线阅读,更多相关《C语言考试考试复习题.docx(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C语言考试考试复习题一、判断下列问题描述及语句正确与否,正确的打,。1.C的关键字都就是小写的。(V)2、C语言规定:在一个源程序中,main函数的位置必须在最开始。 (x)3.一个复合语句就是作为一个语句处理的且在逻辑上相互关联的 一组语句。(V)4、假设所有变量均为整型厕表达式(a=2,b=5,b+,a+b)的值就 是8。(V)5、凡就是函数中未指定存储类别的局部变量,其隐含的存储类别 为静态存储。(x )6 .# define PI=3X14159 ( x)7、C语言中规定函数的返回值的类型就是由return语句中的表达 式类型所决定。(x)8 .局部变量在进入代码块时生成,退出代码块时
2、消失。(V)9、在C语言中对文件操作必须先关闭当前文件,然后再打开一个 新文件。(x)9 O.int a = 123456;( x)11、C语言程序的基本单位就是语句。(x)12 .函数可以嵌套定义,也可嵌套调用。(x)13 . switch与if不同,switch只能测试就是否相等,而if中还能测试 关系与逻辑表达式。(V)14 .break与continue语句都可用于选择结构与循环结构中。(x)二、单项选择题:1、假设已定义char矶10与char *p=a,下面的赋值语句中,正确 的就是:(C)A)a10= Turbo C; B) a= Turbo C;5.main()int a =
3、5,b=4,x,y;x=a +*a +*a+;printf( /a=%d/x=%dn/, ,a,x);y 二一b*b*b;printf( /b=%d/y=%dn,/ ,b,y);)运行结果:a=8,x=125 b=l,y=l/n;j+)/n-l;i + +)C) *p=Turbo C ; D) p=Turbo C;2.C语言中基本数据类型包括(B)oA、整型、实型、逻辑型B、整型、实型、字符型C、整型、字符型、逻辑型D、整型、实型、逻辑型、实型3、下面关于运算符优先顺序的描述中正确的就是:(C)A)关系运算符 算术运算符 赋值运算符 逻辑与运算符B)逻辑运算符 关系运算符 算术运算符 赋值运算
4、符C)赋值运算符 逻辑与运算符 关系运算符 算术运算符D)算术运算符 关系运算符 赋值运算符 noD、student - no13、在C语言中,不正确的int类型的常数就是:(A)A) 32768 B)0 C) 037 D) Oxaf14 .以下不就是死循环的语句为(D )。A.for(; x+ = k);B.while(l)x+;C.for(k=10; ;k-)sum + = k;D.for(;(c=getchar()!=z nz ;)printf( %c ,c);15、以下叙述中不正确的就是:(D )A)在不同的函数中可以使用相同名字的变量B)函数中的形式参数就是局部变量C)在一个函数内定
5、义的变量只在本函数范围内有效D)在一个函数内的复合语句中定义的变量在本函数范围内有效16 .以下错误的描述就是(D )oA、不同的函数中可以使用相同的变量名B、形式参数就是局部变量C、一个函数内部定义的变量只能在本函数范围内有效D、在一个函数内部的复合语句中定义的变量可以在本函数范围内 有效17、以下说法中正确的就是:(D )A)#define与printf都就是C语句B)#define就是C语句,而printf不就是Qprintf就是C语句,但#define不就是D)#define与printf都不就是C语句18.若用数组名作为函数调用时实参,则实际上传递给形参的就是 (A)oA.数组首地址
6、B、数组的第一个元素值C.数组中全部元素的值D、数组元素的个数19、若有以下定义与 语句:double r=99,*p=&r *p=匚则以下正确的叙述就是:(B)A)以下两处的*p含义相同,都说明给指针变量p赋值B)在double r=99,*p二&r中把r的地址赋值给了 p所指的存 储单元C)语句*p=匚”把变量r的地址值赋给指针变量p D)语句*p=匚取变量r的值放回r中20.已知int a,*p=&a则为了得到变量a的值,下列错误的表达式就 是(A)。A. *&pB.*pC. p0D.*&a三、填空题:1、下面程序的功能就是:输入一行字符,统计其中有多少个单词,单 词之间用空格分开。请填
7、空完成。# includemain()char str81;int l,num=0,word=0;char c;gats(str);for(I=0;c=strI!= O ;I+)if(c= ) word=0;else if word =0word = l;num + +;printf( There are %d word in linesn ,num);)2.已知int *p,a;则语句p=&a中的运算符&的含义就是将变量a的地址存入指针变量p中。3、下面程序的功能就是:用选择排序法对数组中10个数据按由小 到大排序。请填空完成。void sort(int a,int n)int I,j,k,
8、t;for(I=0;In-l;i + +) k=I;for(j=I+l;jn;j + +)if(ajif( k!=I)t=ak;ak=aI;aI=t;)main()int b10,I;printf( enter the arrayn);for(I=0;I10;I+)scanf( %d、&bI);sort(b,10);printf( the sorted array: n);for(I=0;I10;I+)printf( %d ,bI);printf( n);)4.凡在函数体内没有明显存储类别说明的变量就是自动变量。5、判断m就是否就是素数#includemain()(int m,i,k;scan
9、f( %d ,&m);k=sqrt(m);for(i=2;i = k+l) printf( %d is a prime numbernz, ,m);else printf( %d is not a prime numbern/, ,m);)6.已知:structint k;char c;float a;test;则 sizeof(test)的值就是 7 o7、假设当年产值为100,工业产值的增长率分别为6%、8%、 10%、12%时,求工业产值分别经过多少年可实现翻番。请填空完成。main()int y4,I;float s4=100,100,100,100,c4=0x06,0、 08,0、
10、10,0、 12);clrscr();for(i=0;i4;i+)yi=o;while(sibc的值就是0。10 .设有以下程序:# includemain()(char c;while(c=getchar() = ? ) putchar(c);)程序运行时,如果从键盘上输入:Y ? N ? /,则输出的结果就是X。11、当接收用户输入的含空格的字符串时,应使用的函数就是 gets()。12、在定义/inta56z,后,第十一个元素就是a4。13.用以下语句调用库函数mall。使字符指针st指向具有11个 字节的动态存储空间,请填空 st=(char*) *maclloc(ll) o14把名为
11、file的文件拷贝到新文件new、dat中,请填空将程序补 克完整 J Uy UTE.S#includemain() int c;FILE *fp2z *fp2;pl=fopen( /file,/ ,r);p2=fopen( new、dat/zzw);c=fgetc(pl);while (c!=EOF) fputc(c,p2);c=fgetc(pl);)fclose(pl);fclose(p2);)四、读程序,写出运行结果:1、main()int x=10,y=10,I;for(I=0;I8;y= + +I)printf( M%d %d ,x - - ,y);)运行结果:10 10 9 12、
12、main()int m = 37,n = 13;while(m! = n)while(mn) m = m - n;while(nm)n - =m;)printf( /m=%dn,z ,m);)运行结果:m = l3、main()int x=9;for(;x0;x -)if(x%3=0)printf( %d , - - x); continue;)运行结果:8524、main()int a=7,b=2;float x=2s 5,y=4、7,z;z=x+a%3*(int)(x+y)%2/4;printf( /%fnM ,z);z= (a + b)/2 + (i nt)x%(i nt)y;printf( % ,z);)运行结果:2、 5000006S 000000