当前位置:文档之家› C语言自学考试模拟试题及答案

C语言自学考试模拟试题及答案

C语言自学考试模拟试题及答案一、单项选择题1.各种基本数据类型的存贮空间正确的长度排列为_____C_____.A.Char<long<int<float<doubleB.Double<float<long<int<charC.Char<int<long<float<doubleD.Float<int<long<char<double2.下面的变量说明中______C_______是正确的。

A.Char:a,b,c;B.Chara;b;c;C.Chara,b,c;D.Chara,b,c3.main(){ intn;(n=6*4,n+6),n*2;printf(“n=%d\n”,n);} 此程序的输出结果是______B________.A.30B. 24C. 60D. 484.若有如下定义,则___C_______和_______D__是对数组元素的正确的引用。

int a[10] ,*p ;p=a ;A. *&a[10]B. a[11]C. *(p+2)D.*p5.设整型变量n的值为2,执行语句“n+=n-=n*n;”后,n的值是___C_______A. 0B. 4C. -4D. 26.表达式y=(13>12?15:6>7?8:9)的值为____C________.A 9B 8C 15 D. 17.若x=5,y=3 则y*=x+5;y的值为___D____________.A. 10B. 20C. 15D. 308.C语言的输入与输出操作是由______C______完成的。

A.输入语句B.输出语句C.输入与输出函数D.输入与输出语句9.语句for(k=0;k<5;++k){ if(k==3)continue;printf(“%d”,k);}的输出结果为______B_____.A.012B.0124C. 01234D. 没有输出结果10.从循环体内某一层跳出,继续执行循环外的语句是:___A________.A.break语句B.return语句C.continue语句D.空语句。

11.Break语句的正确的用法是______B______.A.无论在任何情况下,都中断程序的执行,退出到系统下一层。

B.在多重循环中,只能退出最靠近的那一层循环语句。

C.跳出多重循环。

D.只能修改控制变量。

12.两个指针变量的值相等时,表明两个指针变量是______B____.A.占据同一内存单元。

B.指向同一内存单元地址或者都为空。

C.是两个空指针。

D.都没有指向。

13.不正确的指针概念是_____D_____.A.一个指针变量只能指向同一类型的变量。

B.一个变量的地址称为该变量的指针。

C.只有同一类型变量的地址才能存放在指向该类型变量的指针变量之中。

D.指针变量可以赋任意整数,但不能赋浮点数。

(ch>=‘A’&&ch<=‘Z’)?ch:(ch+32)的值是_________.14.设charch=‘A’;表达式ch!A.AB. aC.ZD. z15.根据C语言的语法规则,下列_____A__个是不合法标识符。

A.WhileC.Rern5D._exam16.设单精度变量f,g均为5.0,使f为10.0的表达式是________A__.A. f+=gB. f-=g+5C. f*=g-15D. f/=g*102003年10月甘肃省自考C语言程序设计真题一、单项选择题(在每小题的四个备选答案中,选出一个正确的答案,并将其代码填入题干后的括号内。

每小题1分,共20分)1.程序中定义以下宏#defineS(a,b)a*b,若定义intarea;且令area=S(3+1,3 +4),则变量area的值为(A)A10B12C 21D 282.正确的标识符是()AaBa=2 Ca.3 D a_33.表达式1&3&5&7的值为(A)A1 B3C5 D74.语句printf(″s\\t″)的输出结果为(B)As\\t B s\tC s\D s5. 执行下列语句中,sum变量的值是(B)intsum=0for(inti=0;i<10;i++,sum+=i);A45B55C 0D编译错误6.已知有共用体变量data1定义如下:uniondata{inti;charch;floatf;}data1;则变量data1所占的内存存储空间可表示为(C)Asizeof(int)Bsizeof(char)Csizeof(float)Dsizeof(int)+sizeof(char)+sizeof(float)7.若fp是指向某文件的指针,且feof(fp)的返回值是非零值,则表示()A已读到此文件末尾B未读到此文件的末尾C此文件已关闭D此文件尚未被打开8.以下c语言函数声明中,不正确的是()Avoidfun (intx,inty);Bfun (intx,inty);Cintfun (intx,y);Dchar*fun (char*s);9.下列选项中,不合法的C语言关键字是()AautoBdefaultCstaticDvar10.若x=4,则x*=x+2的值为()A36B24C18D2011.函数调用语句func((exp1,exp2),(exp3,exp4,exp5));中,实参的个数为()A1B2C4D512.设a为5,执行下列语句后,b的值不为2的是()Ab=a/2Bb=6-(-a)Cb=a%2Db=a>32:113.假设指针p1已经指向了某个整型变量,要使指针p2也指向同一个变量,则下面各项中正确的是()Ap2=**p1Bp2=*&p1Cp2=*p1Dp2=&*p114.以下运算符中,运算对象必须是整型的是()A/B%=C!=D〈=15.以下关于typedef的叙述中错误的是()A用typedef可以增加新的类型B用typedef可以定义各种类型名,但不能用来定义变量C用typedef只是将已有的类型用新的标识符来代表D使用typedef有利于程序的通用和移植16.若执行完成下列语句:inta=3,b=6,c;c=a∧b《2;则变量c的二进制值为()A00011100B00010100C0001000D0001101117.设有定义intx=1;inty=‘a’<‘A’x-:x++;,则变量y的值是()A0B2C1D318.以下关于宏替换的叙述不正确的是()A宏替换只是字符替换B宏名无类型C宏替换不占用运行时间D宏替换不占用编译时间19. 以下对枚举类型名的定义中正确的是()Aenums={a,b,c}Benums{a=9,b=2,c}Cenums={′a′,′b′,′c′}Denums{′a′,′b′,′c′}20. 假设指针p已经指向某个整型变量x,则*p相当于()A&xB&pCxD*x 1.A 2.D 3.A 4.B 5.B 6.C 7.A 8.C9.D 10.B 11.B 12.C 13.D 14.B 1 5.A 16.D17.C 18.D 19.B 20.C二、多项选择题(在每小题的五个备选答案中,选出二至五个正确答案,并将其代码填写在题干后的括号内;错选、多选不得分。

每小题2分,共10分)1.C语言中的文件类型有()A索引文件B文本文件CASCII文件D二进制文件E随机文件2. 以下关于C语言中循环的描述正确的是()A在while和do-while循环体内应包含使循环趋于结束的语句Bdo-while的循环体不能是复合语句Cdo-while的循环体至少无条件执行一次D在for循环中可以使用break语句跳出循环体Efor循环只能用于循环次数已经确定的情况3. 合法的变量名有()Aa_1_2Bb2C_abcDABCE$14. 整型变量的类型标识符是()AshortBlongCUnsignedintDintEchar5. 以下叙述中正确的是()A一个C语言程序有且仅有一个main函数BC语言程序中,main函数是没有参数的C一个函数通过其他函数间接的调用了自身,这种情况也是一种递归调用Dmain函数是由系统调用的E若要通过函数参数带回一个或多个返回值,则应使用按地址传送的参数结合方式三、判断题(认为对的,在题后的括号内打″√″,认为错的打″×″。

每小题1分,共6分)1.若有说明intc;则while (c=getchar());是错误的C语句。

()2.C语言中,共用体类型的变量在程序运行期间,所有成员都在内存中。

()3.在一个函数内部的复合语句中定义的变量,只在该复合语句范围内有效。

()4.C语言程序中,一个文件中的函数可以引用存储在另一个文件中的函数和变量。

()5.使用continue和break语句,都可以使得C程序的执行直接从循环中跳出。

()6.若a为一维数组名,则*(a+i)与a[i]等价。

()四、阅读程序,将程序运行结果填写到题后的横线上(每小题5分,共25分)1.#include″stdio.h″main(){ staticcharstr[]=″Language″;char*s=&str[8];while(--s>=&str[0])putchar(*s);putchar(′\n′);}输出结果:___________________________2.main(){inta[6]={12,4,17,24,27,16};intb[6]={27,13,4,25,23,16};for(inti=0;i<6;i++){ for(intj=0;j<6;j++)if(a[i]==b[j])break;if(j<6)printf(″%d″,a[i])}}输出结果:_____________________________ 3. #include<stdio.h>intmian(){ inti=0,sum=0;while(1){ sum+=i;i++;if(i>5)break;}printf(″sum=%d\n″,sum); }程序运行结果:4. intfun(intn){if(n>0)returnn*fun(n-1);elsereturn1;}main(){ inta=fun(4);printf(″a=%d\n″,a);}程序运行结果:____________________ 5. fun(inti){ staticints=3;s+=ireturn(s);}main(){inta=2,b=1,s;s=fun(a);s=fun(b);printf(″%d\n″,s);}程序运行结果:____________________五、程序填空题(根据题意要求,将程序补充完成。

相关主题