您好,欢迎访问三七文档
本科C程序设计期末复习题一,选择1.C语言程序中可以对程序进行注释,注释部分必须用符号__C___括起来。A.‘{‘和’}’B.‘[‘和’]’C.“/*”和”*/”D.“*/”和”/*”2.C语言程序的三种基本结构是顺序结构、选择结构和__B____结构。A.递归B.循环C.转移D.嵌套3.若变量已正确定义,表达式(j=3,j++)的值是__B___。A.3B.4C.5D.04.已知字符‘a’的ASCII码为97,执行下列语句的输出是__D___。printf(%d,%c,’b’,’b’+1);A.98,bB.语句不合法C.98,99D.98,c5.表达式strcmp(“box”,“boss”)的值是一个___A____。A.正数B.负数C.0D.不确定的数(答案是1,也就是正数。strcmp是这样比较的,两个字符串,从第一个字符开始比,如果相同,继续向下比,如果不同,看这两个字符的ASCII码,如果第一个字符串的比较大,则返回1,否则返回-1。这个题目两个字符串前面两个字符bo是一样的,不用看。比较第三个字符,'x'的ASCII码是120,'s'的ASCII码是115,也就是'x''s',所以第一个字符串比较大,返回1)6.数组定义为inta[3][2]={1,2,3,4,5,6},数组元素_B____的值为6。A.a[3][2]B.a[2][1]C.a[1][2]D.a[2][3](a[1][2]值为6,行下标从0到1,列下标从0到2,最后一个元素是a[1][2])7.要调用数学函数时,在#include命令行中应包含__C___。A.”stdio.h”B.”string.h”C.”math.h”D.”ctype.h”8.对于以下结构定义,++p-str中的++加在___A__。struct{intlen;char*str;}*p;A.P的成员指针str上B.指针p上C.P的成员str指的内容上D.以上均不是9.若a是基本整型变量,c是单精度实型变量,输入语句___D___是错误的。A.scanf(”%d,%f”,&a,&c);B.scanf(”d=%d,c=%f”,&a,&c);C.scanf(”%d%f”,&a,&c);D.scanf(”%d%f”,a,c);10.若变量p已正确定义并且指针p已经指向某个变量x,则(*p)++相当于__B___。A.p++B.x++C.*(p++)D.&x++11.下列叙述中正确的是(A)。A.函数定义不允许有嵌套,但函数可以嵌套调用B.函数定义可以嵌套,但函数调用不可以嵌套C.函数定义和函数调用都不能嵌套D.函数定义与函数调用都可以嵌套12.以下程序的输出结果是Bmain(){chara[10]=”6789”,*p;p=a;printf(“%s\n”,p);A.6B.6789C.'6'D.78913.若有说明:inta[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是__B__。A.2B.3C.4D.无确定值(inta[][3]={1,2,3,4,5,6,7};这个定义相当于是这样的.inta[][3]={{1,2,3},{4,5,6},{7}};所以a的第一个维度就是3。系统会根据第二个维度大小自动设置第一个维度。注意,这里第二维度是不能像第一个维度那样省略的。)14.__D____是合法的用户自定义标识符。A.b-bB.floatC.frD._isw(1)标识符由字母、数字、下划线“_”组成,并且首字母不能是数字.2)不能把C语言关键字作为标识符,例如if,define,for,while等.3)标识符长度是由机器上的编译系统决定的,一般的限制为8字符(注:8字符长度限制是C89标准,C99标准已经扩充长度,其实大部分工业标准都更长)。4)标识符对大小写敏感,即区分大小写。5)标识符命名应做到“见名知意”下面的标识符名是合法的:year,Day,ATOK,x1,_CWS,_change_to而下面的标识符名是不合法的:#123,.COM,$100,1996Y,1_2_3,Win3.2)15.__C____是不正确的字符常量。A.'\n'B.'1'C.aD.'\101'16.在C程序中,用__B___表示逻辑值“真”。A.-1B.非0的数C.非1的数D.017.把x、y定义成float类型变量,并赋以相同初值3.14,以下语句正确的是_CA.floatx,y=3.14;B.floatx,y=2*3.14;C.floatx=3.14,y=x=3.14;D.floatx=y=3.14;18.若变量已正确定义,语句“if(ab)k=0;elsek=1;”和__C____等价。A.k=(ab)?1:0;B.k=ab;C.k=a=b;D.a=b?0:1;19.设变量定义为“inta,b;”,执行下列语句时,输入__A___,则a和b的值都是10。scanf(a=%d,b=%d,&a,&b);A.1010B.10,10C.a=10b=10D.a=10,b=1020.在C程序中,若对函数类型未加说明,则函数的隐含类型为_A____。A.intB.doubleC.voidD.char21.设变量定义为“intx,*p=&x;”,则&*p相当于__A___。A.pB.*pC.xD.*&x(选择A.因为*p是指针。当x的地址赋值个指针p的时候,他们的地址就一样(数值也是一样)。指针的话,要表示数值的话用用*p,指地址的话,只要p就可以。如果加地址符号&,那就值该指针的地址(&*p),也就是值x的地址。ABCD中,只有A选项表p的地址(即是x的地址)。B、C和D都是表值。)22.对于以下的变量定义,表达式___D__不符合C语言语法。structnode{intlen;char*pk;}x={2,right},*p=&x;A.p-pkB.*p.pkC.*p-pkD.*x.pk23.有以下程序段intk=0while(k=1)k++;while循环执行的次数是____A__A.无限次B.有语法错,不能执行C.一次也不执行D.执行1次(无限次,因为while里面是k=1这是一个赋值语句如果是判断语句应该是whilek==1.因为是赋值语句所以每次都是会执行)24.以下c语言函数声明中,不正确的是__B____A.voidfun(intx,inty);B.fun(intx,inty);C.intfun(intx,y);D.char*fun(char*s);25.若有说明:inta[3][4];则对a数组元素的正确引用是——C—。A.a[2][4]B.a[1,3]C.a[1+1][0]D.a(2)(1)26.若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为_D_。(假设a[0][0]位于数组的第一个位置上。)A.i*m+jB.j*m+iC.i*m+j-1D.i*m+j+127.以下正确的说法是___C__。A.定义函数时,形参的类型说明可以放在函数体内B.return后边的值不能为表达式C.如果函数值的类型与返回值类型不一致,以函数值类型为准D.如果形参与实参的类型不一致,以实参类型为准28.C语言程序的三种基本结构是顺序结构、选择结构和_C_____结构。A.递归B.转移C.循环D.嵌套29.以下不能定义为用户标识符是(D)A.MaInB._0C._intD.if30.假定有以下变量定义:intK=7,X=12;则能使表达式值为3的是(D)A.X%=(K%=5)B.X%=(K-K%5)C.X%=X-K%5D.(X%=K)-(K%=5)31.设x,y均为float型变量,则以下不合法的赋值语句是—D——.A.++x;B.y=x%2;C.x*=y+8;D.x=y=0;32.以下叙述正确的是—C——。A.在C程序中,main函数必须位于程序的最前面B.C程序的每行中只能写一条语句C.C语言本身没有输入输出语句D.在对一个C程序进行编译的过程中,可发现注释中的拼写错误33.函数的返回值的类型是:(A)A.函数的类型B.函数类型与return语句中表达式类型中高的类型C.return语句中表达式的类型D.调用函数所赋值的变量的类型34.数组定义为inta[11][11],则数组a有__D___个数组元素。A.12B.144C.100D.12135.对于以下的变量定义,表达式_D_____是不正确的。structnode{intj,k;}x,*p=&x;A.p-k=2B.(*p).k=2C.x.k=2D.x-k=236.不正确的赋值或赋初值的方式是__B____。A.charstr[]=string;B.charstr[10];str=string;C.char*p=string;D.char*p;p=string;37.以下关于宏替换的叙述不正确的是(B)A.宏替换只是字符替换B.宏名无类型C.宏替换不占用运行时间D.宏替换不占用编译时间38.为了表示关系x=y=z,应使用C语言表达式:(A)A.(x=y)&&(y=z)B.(x=y)AND(y=z)C.(x=y)||(x=z)D.(x=y)&(y=z)39.已有函数max(a,b),为了使函数指针变量p指向函数max,正确的赋值方法是:(D)A.p=maxB.*p=maxC.p=max(a,b)D.*p=max(a,b)40.设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值:scanf(i=%d,f=%f,&i,&f);为了把100和765.12分别赋给i和f,则正确的输入为(B)A.100,765.12B.i=100,f=765.12C.100765.12D.x=100y=765.1241.ints[4][5],(*ps)[5];ps=s;则对s数组元素的正确引用方式是:(C)A.ps+1B.*(ps+3)C.ps[0][2]D.*(ps+1)+342.C语言程序的三种基本结构是顺序结构、选择结构和__C____结构。A.递归B.转移C.循环D.嵌套43.为表示关系x≥y≥z,应使用C语言表达式AA)(x=y)&&(y=z)B(x)=y)AND(y)=z)C)(x)=y)=z)D)(x)=y)&(y)=z)44.设有说明ints[2]={0,1},*p=s;则下列错误的C语句是(A)A.s+=1;B.p+=1;C.*p++;D.(*P)++;(数组名不能进行自反赋值运算,数组名就代表这个数组的首地址,是不能更改的)45.以下选项中不正确的字符常量是__D___。A.'1'B.'\0'C.'%d'D.1046.设有如下定义:intx=10,y=3,z;则语句printf(“%d\n”,z=(x%y,x/y));的输出结果是A)1B)0C)4D)3(x%y=1x/y=3,(x%y,x/y)为逗号表达式结果取最后一位)47.已知字符‘a’的ASCII码为97,执行下列语句的输出是__A___。printf(%c%d,’b’,’b’+1);A.b99B.98cC.9899D.bc48.在C语言程序中,在函数内部定义的变量称为____C__。A.全局变量B.外部变量C.局部变量D.内部变量49.以下对一维数组的定义中,正确的是:A。A)#defineMAX5B)intMAX=5;inta[MAX];inta[MAX];C)intMAX;D)#defineMAX5;Scanf(“%d”,&MAX);inta[MAX];inta[MAX];50.若有以下定义及语句:structs1{chara[3];intnum;}t={‘a’,’b’,’c’,4},*p;p=&t;则输出值为c的语句是__B______。A)printf(“%c\n”,p-t.a[2]);B)printf(“%c\n”,(*p).a[2]);C)printf(“%c\n”,p-a[3]);D)printf(“%c\n”,(*p).t.a[2]);51.对于变量定义:int**p[1
本文标题:C语言期末复习题
链接地址:https://www.777doc.com/doc-7318100 .html