函授C语言程序设计自学复习题.doc_第1页
函授C语言程序设计自学复习题.doc_第2页
函授C语言程序设计自学复习题.doc_第3页
函授C语言程序设计自学复习题.doc_第4页
函授C语言程序设计自学复习题.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

C语言程序设计自学复习题C 程序设计基本要求 : 1、 具有计算机的基础知识。 2、 了解操作系统的基本概念,掌握常用操作系统的使用。 3、 掌握基本数据结构和常用算法,熟悉算法描述工具流程图的使用。4、 能熟练地使用C语言编写程序、调试程序。 复习资料练习题(1-10章):一、 填空题1、将下列给出的常量分别归类:整型、浮点型和字符型。 0x7a 078 6a 57L m ab6 -32 3.4,256 0e0 .e0 -3.1e-5 1e0 0.012e003 4.8e+3 xy nabt 07 V2、指出下列标识符中哪些是非法的。 a_Char b22C 286pc am _7b ab# Max_1 _ _ Star *itm To-2 for it3、C源程序的基本单位是 。4、一个C源程序中至少应该包括一个 。5、在一个C源程序中,注释部分两侧的分界符分别为 和 。6、在C语言中,输入操作是由库函数 完成的,输出操作是由库函数 完成的。7、经过下述赋值后,变量x的数据类型是 。 int x=2; double y; y=(int)(float)x8、C语言的基本数据类型分为: 、 和 。9、若a、b和c均为int 型变量,则执行a=(b=4)+(c=2)表达式后,a值为 ,b值为 ,c值为 。10、若a为int 型变量,且a的初值为6,则执行a+=a-=a*a表达式后, a值为 。11、若a为int 型变量,则执行a=25/3%3表达式后, ,a值为 。12、若x和n为int 型变量,且x和n的初值均为5,则执行x+=n+表达式后,x值为 ,n值为 。13、若有定义:int b=7;float a=2.5;c=4.7,则a+(int)(b/3*(int)(a+c)/2)%4表达式的值为 。14、若x和y都是double型变量,且x初值为3.0,y初值为2.0, 则pow(y,fabs(x)表达式的值为 。15、若有定义:int e=1,f=4,g=2;float m=10.5,n=4.0,k;则执行表达式k=(e+f)/g+sqrt(double)n)*1.2/g+m后k的值为 。16、表达式8/4*(int)2.5/(int)(1.25*(3.7+2.3)值的数据类型为 。17、表达式pow(2.8,sqrt (double(x)fabs(x)值的数据类型为 。18、若s为int型变量,且s=6, 则s%2+ (s+1)%2表达式的值为 。19、若a为int型变量, 则(a=4*5,a*2),a+6表达式的值为 。20、若x和a均为int型变量,则执行表达式(1)后x的值为 ,执行表达式(2)后x的值为 。(1)x=(a=4,6 *2) (2) x=a=4,6 *221、若有以下定义,则执行表达式y+=y-=m*=y后的值是y= 。 int m=5,y=2;22、设C语言中,一个int型数据在内存着占2个字节,则int型数据的取值范围为 。23、C语言中的实型变量分为两种类型,它们是 和 。24、C语言所提供的基本数据类型包括:单精度型、双精度型、 、 和 。25、下列函数将长整数a转换成带符号的字符串s。若a为n位数,则其相应的字符串如下存放;s0存放数字;s1 ,s2 sn依次存放从高位到低位的各位数字。sn+1存放结束符 0。 void atos(a,s) long a; char s int n=1;long a1;00= ; =0?a;-a while( )n+; sn+1= 0; while(n)sn-= ; a=a/10;26、若有定义:int a=2,b=3;float x=3.5,y=2.5;则表达式(float)(a+b)/2+(int)x%(int)y的值是 。 27、若有定义:char c= 010;则变量c中包含的字符个数为 。28、若有定义:int x=3,y=2;float a=2.5,b=3.5;则(x+y)%2+(int)a/(int)b表达式的值是 。29、若x和n均为int型变量,且x的初值为12,n的初值为5,则 x%=(n%=2)表达式后x的值是 。30、假设所有变量均为整型,则表达式(a=2,b=5,a+,b+,a+b)的值为 。31、C语言中的标识符只能由三个字母组成,它们是 、 和 。32、已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch=a+8-3的值是 。33、下列程序的输出结果是 。 main() int i; for(i=1;i5;i+) switch(i) case 1:case 2:printf(%dn,i);case 3:printf(%dn,i); break;default: printf(OK!n ); 34、下面程序的输出结果是 。 # include char input=SSSWILTECH1111W1WALLMP1; main() int i,c; for(i=2;(c=inputi)! = 0;i+) switch(c) case a:putchar( i); continue;case 1:break;case 1:while(c=input+i)!= 1&c! 0);case 9:putchar(S);caseE: caseL: continue;default;putchar(c);continue;putchar( ); putchar( n); 35、下列程序输出结果是 。# define A 100main() int i=0,sum=0; do if (i=(i/2)*2) continue; sum+=i; while(+iA); printf(%dn,sum); 36、下列程序输出结果是 。# define void main() int x=-2345;float y=12.3; printf(%6D,%06.2Fn,x,y); 37、下列程序输出结果是 。main() int i;for(i=1;i+1;i+) if(i4) printf(%dn,i); break; printf(%dn,i); 38、下列程序输出结果是 。# define PR(ar)printf(%d ,ar)main() int j,a=1,3,5,7,9,11,13,15,*p=at5;for(i=3;j0;j-) switch(j) case 1:case 2: PR(*p+);break;case 3: PR(-p); 39、下列程序的输出结果是 。 # inclue main() int a=1,b=2,c=3;a+;c+=b;int b=4,c; c=2*b; a+=c; printf(%d,%d,%d n,a,b,c); printf(%d,%d,%d n,a,b,c); 40、下列程序的输出结果是 。int m=13;int fun2(int x,int y) int m=3; return(x*y-m); main()a=7,b=5;printf(%dn,fun2(a,b)/m);二、 判断题要求清楚C的概念三、 选择题1、下列标识符中, 是合法的用户标识符。A A#C B getch C void D ab*2、在C语言中,字符型数据在内存中以 形式存放。A 原码 B BCD码 C 反码 D ASCII码3、以下选项中不合法的用户标识符是 。A abc.c B file C Main D PRINTF4、以下选项中不合法的用户标识符是 。A -123 B printf C A$ D Dim5、 是构成C语言程序的基本单位。A 函数 B 过程 C 子程序 D 子例程6、若x为int型变量,则执行以下语句后,x的值为 。x=6;x+=x-=x*xA 36 B -60 C 60 D -247、C语言的程序一行写不下时,可以 。A 用逗号换行 B 用分号换行 C 在任意一空格处换行 D 用回车符换行8、 是非法的C语言转义符。A b B oxf C o37 D 9、在C语言中,int、char、short三种类型的数据所占用的内存 。A 均为两个字节 B 由用户自己定义C 由所用机器的机器字长决定 D 是任意的10、下述表达式中, 可以正确表示x=1的关系.A (x=1)(x 1 x=1 .OR. x=1 x=0 11、下列程序的输出结果是 。 # include void main() int x=-1, y=4; int k; k=x+=0&!(y-=0);printf(%d,%d,% n,k,x,y); A 0,0,3 B 0,1,2 C 1,0,3 D 1,1,212、下列程序的输出结果是 。 # include void main() int a=0, b=0,c=0; if(+a0+b0) +c;printf(na=%d,b=%d,c=%d,a,b,c); A a=0,b=0,c=0 B a=1,b=1,c=1 C a=1,b=0,c=1 D a=0,b=1,c=113、下述程序片段中,执行 后变量i的值为4。A int i=1,j=1; B int i=0,j=0; i=j=(1=3)+); (i=2,i+(j =2);C int i=1,j=1; D int i=0,j=1;i+=j+=2); (j=1)?i+ =3:i=214、若已定义a为整型数据变量,则:a=-2L;printf(%dn,a); 以上语句 。A 赋值不合法 B 输出值为-2C 输出为不确定 D 输出值为215、现已定义整型变量 int i=1;执行循环语句while(i+5) ;后,i的值为 。A 1 B 5 C 6 D 以上三个答案均不正确16、现已定义x为double类型变量,结果为 。x=213.82631;printf(%-6.2en,x);A 输出格式描述的列宽不够,不能输出 B 输出为21.38e+01C 输出为2.14e+02 D 输出为-2.14e217、 是不正确的C语言赋值语句。A x=1,x=2; B x+ C x=y=5 D y=int(x)18、C语言程序的三种基本结构是 。A 顺序结构、选择结构、循环结构B 递归结构、循环结构、转移结构C 嵌套结构、递归结构、循环结构D 循环结构、转移结构、顺序结构19、以下说法中正确的是 。A、C 语言的程序总是从第一个函数开始执行B、在C语言程序中,要调用的函数必须在main()函数中定义C、C语言程序总是从main()开始执行D、C语言程序中的main()函数必须放在程序的开始部分。20、C语言可执行程序的开始执行点是 。A 程序中第一条可执行的语句B 程序中第一个函数C 程序中的main()D 包含文件中的第一个函数21、有关下述语句输出的判断中,正确的是 。 char x=xe)1; printf(%d,x);A 赋值非法 B 输出值不确定 C 输出值为-32 D 输出值为22422、下面的程序结果是 。 main()int x=3,y=0,z=0; If(x=y+z)printf(*); else printf(#);A 有语法错误不能通过编译 B 输出*C 可以通过编译,但是不能通过连接,因而不能运行D 输出#23、执行后输出结果是 。 main()int m3=1,4,7,2,5,8,3,6,9; int i,j,k=2; for(i=0;iy); B if(x=y)x+y; C if(x!=y)scanf(%d&x)else scanf(%d&y) ; D if(xy)x+;y+;25、若执行下述程序时,从键盘输入数据3和4,则程序的输出结果是 。 #include void main() int a,b,s; scanf(%d,&a,&b); s=a; if(ab)s=b;s=s*s;printf(%d,s); A 14 B 16 C 18 D 2026、以下程序的输出结果是 。#include void main() int x=1,y=0,a=0,b=0; switch(x) case1: switch(y) case0:a+;break;case1:b+; break;case2:a+;b+; break;case3:a+;b+; break;default;a+;b+; break;printf(na=%d, b=%d,a,b); A a= 1,b=0 B a=2,b=1 C a=1,b=1 D a=2,b=227、下述for语句 。int i,x;for(i=0,x=1,i=9&x!=876;i+) scanf(%d, & x);A 最多循环10次 B 最多循环9次 C 无限循环 D 一次也不循环28、下述程序的输出结果是 。# includevoid main() int y=10; while(y-); printf(y=%d, y);A y=0 B y=1 C y=随机值 D y=-129、下列关于switch和的结论中,只有 是正确的。A break语句是switch语句的一部分B 在switch语句中可以根据需要使用或不使用break语句C 在switch语句中必须使用break语句D 以上三个结论中有两个是正确的。30、设已定义i和k 为int类型变量,则以下for循环语句 。 for(i=0,k=1,k=1,i+,k+) printf(*n);A 判断循环结束的条件不合法 B 是无限循环C 循环一次也不执行 D 循环只执行一次31、若下述程序运行时输入的数据是“3.6,2.48”,则输出结果是 。 #include #include void main()float x, y,z ; scanf(%f,%f,&x,&y);z=x/y;while(1)if(fabs(z)1.0)x=y;y=z;z=x/y;elsebreak;printf(%f,y); A 1.500000 B 1.600000 C 2.00000 D 2.40000032、下列程序的功能是求 。#include #define N 10main()float x, s,aM ; int i=0;while(iM)scanf(%f,&ai); i+;scanf(%f,&x); s=a0;for(i=1;iM;i+)s=s*x+ai;printf(%fn,s); A 累加和 B 连乘积 C 乘积和 D 计算多项式的值33、 是非法的C语言转义符。A b B 0xf C D 34、语句char s=092;的作用是 。A 使s包含一个字符 B 说明不合法,s的值不确定C 使s包含四个字符 D 使s包含三个字符35、字符串ABC的长度是 。A 11 B 7 C 5 D 336、有关下述语句输出的判断中正确的是 。 char x=xe0; printf(%d x,);A 赋值非法 B 输出值不确定 C 输出值为-32 D 输出值为22437、已知字母A的ASCII码值是65 ,以下程序结果是 。 #include void main() char a=A; int b=20; printf(%d,%0,(a=a+a,a+b,b),a+a-A,b); A 表达式非法,输出零或不确定值B 因输出项过多,无输出或输出不确定值C 输出结果为20,141 D 输出结果为20,141,2038、若ch 为char型变量,k为int型变量(已知字符a的ASCII码是97),则执行下列语句后的输出结果为 。ch=a;k=12;printf(%x,%0,ch,ach,k);printf(k=% %dn,k);A 因变量的类型与格式描述符的类型不匹配,输出无定值B 输出现与格式描述符的个数不符,输出为零值或无定值C 61,141,k=%d D 62,141,k=%1239、以下对C语言函数描述中,正确的是 。A C程序由一个或一个以上的函数组成B C函数即可以嵌套定义又可以递归调用C 函数必须有返回值,否则不能使用函数D C程序中调用关系的所有函数必须放在同一个程序文件中40、以下叙述中不正确的是 。A 在C中,调用函数时,只能实参的值传递给形参,形参的值不能传送给实参B 在C的函数中,最好使用全局变量C 在C中,形参只是局限于所在函数D 在C中,函数名的存储类别为外部41、C语言中函数返回值的类型是由 决定。A return语句中的表达式类型 B 调用函数的主调函数类型C 调用函数时临时 D 定义函数时所指定的函数类型42、一个C程序由函数A、B、C函数P构成,在函数A中分别调用了函数B和函数C,在B中调用了A,且在函数P中也调用了函数A,则可以说 。A 函数B中调用的函数A是函数A的间接递归调用B 函数A被B中调用的函数A间接递归调用C 函数P直接递归调用了函数AD 函数P中调用的函数A是函数P的嵌套43、定义int *swap()指定的是 。A 指一个返回整型值的函数swapB 指一个返回指向整型值指针的函数swap C 指一个函数swap()函数的指针,函数返回一个整型值D 以上说法均错44、下面不正确的描述为 。A 调用函数时,实参可以是表达式B 调用函数时,实参与形参可以共用内存单元C调用函数时,将为形参分配内存单元D调用函数时,实参与形参的类型必须一致45、C语言规定,调用一个函数时,实参变量与形参变量之间的数据传递是 。A 地址传递 B 值传递 C 由实参传给形参,并由形参传回给实参D 由用户指定传递方式46、要在C语言中求sin(30)则可以调用库函数,格式为 。A sin(30) B sin(3.1415/6) C sin((double)30) D sin(30.0)47、要在C语言中求运算数必须是整型数据的运算符是 。A % B / C * D !48、说明语句的static int i=10;中i=10含义是 。A 说明变量i为整型的静态变量B 在功能上等价于说明语句auto int i=10C 将变量i初始化为10 D 将变量i赋值为1049、设P是指向A的指针,Y为整型变量,A=5,A的地址为EF03;B=6,B的地址为EF04;执行语句Y=&A后的结果是 。A 5 B 6 C EF03 D EF0450、下面的函数调用语句含有 个实参。 Func(v1,v2),(v3,v4,v5),v6;A 3 B 4 C 5 D 651、一个完整的可运行C源程序是 。A 至少需由一个主函数和(或)一个以上的辅函数构成B 由一个且仅由一个主函数和零个以上(含零个)的辅函数构成C 至少由一个主函数和一个以上的辅函数构成D 至少由一个且只有一个主函数或多个辅函数构成52、下述程序的输出结果是 。 #include void prt(int *x)printf(%D,+*x); void main() int y=30; prt(&y) A 30 B 31 C 29 D 3253、下面程序有两个printf语句,如果第一个printf语句输出的是194,则第二个printf语句的输出结果是 。#includemain() int a10=1,2,3,4,5,6,7,8,9,0,*p; p=a; printf(%xn,p);printf(%xn,p+9); A 203 B 204 C 1a4 D 1ab54、对于基类型相同的指针变量,不能进行 运算。A + B - C = D = =55、下面程序段中不能正确赋值的是 。A char *p,ch; B char *p,; p=&ch p=( char *)malloc(1) scanf(%c,&p); scanf(%c, p) ;C char *p; D char *p,ch; *p=getchar() p=&ch *p=getchar() ;56、若有以下说明,且0i10则 是对数组元素地址的正确表示. int a=1,2,3,4,5,6,7,8,9,0,*p=a,i;A &(a+1) B a+ C &p D &pi57、对于下述程序的判断中,正确的是 。 int x=10,*p; float y=2.4; x=y+; *p= x *p+= x+y+; printf(%d,%f,*p,y);A 输出23,4.4 B 输出6,4.4 C 因为程序有错,结果不定 D 输出4,4.458、正确的说明语句为 。A int Aa B int A3,4 C int A D int *A1059、选择出正确的说明语句为 。A int Aa B int A3,4 C int A D int *A1060、61、若有下面说明和语句,且0i10则 是对数组元素地址的正确表示.int a=1,2,3,4,5,6,7,8,9,0,*p,i;p=a;A &(a+1) B a+ C &p D &pt62、数组名作为参数传递给函数,作为实在参数的数组名被处理为 。A 该数组的长度 B 该数组的元素个数 C 该数组中各元素的值 D 该数组的首地址63、在C语言中,若地函数类型未加明确说明,则函数的隐含类型是 类型。A void B double C int D char64、有以下程序,执行后牲畜的结果是 。main() int i; for(i=0;i3;i+) switch(i) case1:printf(%d,i);case2:printf(%d,i);default:printf(%d,i); A 011122 B 012 C 012020 D 12065、65、在C语言中,存储类型为 的变量只在使用它们时才占用存储空间。A static和auto B register和auto C static和register D register和extem66、在C语言中形参的缺省类别是 。A 自动(auto) B 静态(static) C 寄存器(register) D 外部(extem)67、若有如下说明: char *str1=copy,str2 10,*str3=str,*str4,*str5=good;则 是正确的串操作语句。A strcpy(sgr4,str1); B strcat(str1,str3);C str2=new str; D strcpy(sgr5,str3);68、下述函数引用中, 含有错误。其中s的定义如下: char s10A scanf(%10s,s); B printf(%.5s,s); C puts(s+3); D gets(s);69、指针a所指的字符串长度是 。 char *a=nMyV NameV isZhang VLinA 26 B 27 C 28 D 2370、设有以下程序片段char a412=China,Japan, French,England;char *p4;int i;for(i=0;i4;i+)pi=ai;下面对一个字符串的引用不正确的是 。A ai B pi C *p D p71、不正确的字符串赋值或初值发生是 。A char *str;str=string;B char str =s,t,r,i,n,g;C char str10; str 1=string;D char str 1=string,str2=12345678; strcpy(str2, str 1) ;72、若有如下输出语句,则输出结果是 。char s12=a book! print(%d,strlen(sp);A 12 B 8 C 7 D 673、以下程序的输出结果是 。A 8,17 B 8,16 C 8,20 D 8,8 #include main() int k=4,m=1,p; p=func(k,m); print(%d,p); p=func(k,m); print(%dn,p); func(int a,int b) static int m,i+2; i+=m+1; m=i+a+b return(m); 74、若一个外部变量的定义形式为static int x;那么static的作用是 。A 将变量存储在静态存储区 B 使变量x可以由系统自动初始化C 使变量x只能在文本内引用 D 使x的值可以永久保留75、在“文件包含”预处理语句的使用形式中,当#include后面的文件名用括起来时,寻找被包含文件的方式 为 。A 直接按系统设定的标准方式搜索目录B 先在源程序所在目录搜索,再按系统设定的标准方式搜索C 仅仅搜索源程序所在目录D 仅仅搜索当前目录76、以下叙述中不正确的 。A 预处理命令行都必须以#号开始B 在程序中凡是以#号开始的语句都是预处理命令行C C程序在执行过程中对预处理命令行进行处理D 以下是正确的宏定义 #define IBM-PC77、以下叙述正确的是 。A 在程序的一行上可以出现多个预处理命令行B 预处理行是C的合法语句C 被包含的文件不一定以,h作为后缀D 在以下定义中CR是被称为“宏名”的标识符 #define ICR 37.692178、下面描述中正确的是 。A C语言中预处理是指完成宏替换或文件包含指定的文件的调用B 预处理指令只能位于C源程序文件的首部C 凡是C源程序中行首以#标识的控制行都是预处理指令D 预处理就是完成C编译程序的第一遍扫描,为编译的词法分析和语法分析做准备79、下面是对宏定义的描述,不正确的是 。A 宏不存在类型问题,宏名无类型,它的参数也无类型B 宏替换不占用运行时间C 宏替换时先求出实参表达式的值,然后代入形参运算求值D 其实,宏替换只不过是字符替代而已.80、已知以下程序段,正确的判断是 。 #define A 3 #define B(a)(A+1)*3) X=3*(A+B(7);A 程序错误,不允许嵌套定义 B X=93 C X=21 D 程序错误,宏定义不允许有参数81、下列程序的运行结果是 。 #define PI #.141593 #include main() printf(PI=%fn,PI); A 3,141593=3.141593 B PI=3.141593 C 3.141593=PI D 程序有误,无结果82、在 C语言中允许用外部说明来指定变量、函数和其它标识符的特征,这里所说的外部指的是 。A冠以关键字extem B 它们的位置在函数体外部C 它们的作用范围是全程的 D 它们的位置在函数的外部83、设有以下说明,则下面不正确的叙述是 。 union data int i; char c; float f; a;A a所占的内存长度等于成员f的长度 B a的地址和它的各成员的地址都是同一个地址C a可以作为函数参数 D 不能对a赋值。但可以在定义a是对它初始化84、若有以下定

温馨提示

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

最新文档

评论

0/150

提交评论