资源描述:
《C语言基础知识复习题模拟试题一.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、模拟试题一一、选择题(本大题30分,每小题2分)1.下列说法正确的是H。A)main函数必须放在C程序的开头B)main函数必须放在C程序的最后C)main函数可以放在C程序的中间部分,但在执行C程序时是从程序开头执行的D)main函数可以放在C程序的中间部分,但在执行C程序时是从main函数开始的2.在下面几组数据类型中,全为最常用的基本数据类型的是哪一组:A。A)整型实型字符型B)整型数组指针C)数组结构体共用体D)指针逻辑型空类型3.若有说明语句:charc=‘64’;则变量C包含:A。A)1个字符B)2个字符C)3个字符D)说明不合法
2、,C值不确定4.设有如下定义和执行语句,其输出结果为:。inta=3,b=3;a=--b+1;printf(“%d%d”,a,b);A)32B)42C)22D)235.C语言中,运算对象必须是整型数的运算符是A。A)%B)C)%和D)**6.能正确表示x的取值范围在[0,100]和[-10,-5]内的表达式是C。A)(x<=-10)
3、
4、(x>=-5)&&(x<=0)
5、
6、(x>=100)B)(x>=-10)&&(x<=-5)
7、
8、(x>=0)&&(x<=100)C)(x>=-10)&&(x<=-5)&&(x>=0)&&(x<=100)D)(x<
9、=-10)
10、
11、(x>=-5)&&(x<=0)
12、
13、(x>=100)7.程序段如下intk=0;while(k++<=2);printf("last=%d",k);则执行结果是last=B。A)2B)3C)4D)无结果8.下面有关for循环的正确描述是A。A)for循环只能用于循环次数已经确定的情况B)for循环是先执行循环体语句,后判断表达式C)在for循环中,不能用break语句跳出循环体D)for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来9.若二维数组a有m列,则a[I][j]元素前的数组元素个数为:。A)j*m+iB)i
14、*m+jC)i*m+j-1D)i*m+j+110.C语言中变量的指针指的是:。A)变量类型B)变量值C)变量值D)变量地址11.设有两字符串“Beijing”、“China”分别存放在字符数组str1[10],str2[10]中,下面语句中能把“China”连接到“Beijing”之后的为:。A)strcpy(str1,str2);B)strcpy(str1,“China”);C)strcat(str1,“China”)D)strcat(“Beijing”,str2);12.以下程序的运行结果是:。main(){inta=2,i;for(i=0
15、;i<3;i++)printf(“%4d”,f(a));}f(inta){intb=0,c=3;b++;c++;return(a+b+c);}A)71013B)777C)7911D)78913.在C语言程序中,若未在函数定义时说明函数类型,则函数默认的类型为:C。A)voidB)doubleC)intD)char14.在说明一个结构体变量时系统分配给它的存储空间是。A)该结构体中第一个成员所需存储空间B)该结构体中最后一个成员所需存储空间C)该结构体中占用最大存储空间的成员所需存储空间D)该结构体中所有成员所需存储空间的总和15.使用fseek
16、函数可以实现的操作是。A)改变文件的位置指针的当前位置B)文件的顺序读写C)文件的随机读写D)以上都不对二、判断题(本大题10分,每小题1分)1、C程序可以由若干个源文件组成,因此最小的功能单位是源文件,最小编译单位的是函数。()2、C程序有三种结构化程序设计方法,分别顺序结构、选择结构和循环结构。()3、在if语句中,if子句与else子句都可以单独使用,构成了if语句的两种缺省形式。()4、for语句作为循环控制语句时,其括号内各个表达式及其后的分号都可缺省。()5、C程序中函数不可以嵌套定义但可以嵌套调用。()6、字符串可以用来给数组赋值
17、,在C程序的执行语句中可以直接用字符串给数组名赋值。()7、数组名也可作为函数参数使用,此时数组名代表数组的起始地址。()8、在函数内的复合语句中定义的变量在本函数范围内有效。()9、声明一个结构体类型的一般形式为struct结构体名{成员表列};。()10、ANCIC规定了标准输入输出函数库,用fseek()函数来实现打开文件。()三、程序填空题(本大题12分,每小题2分)(5)(6)1.下面程序可求出1~1000的自然数中所有的完数(因子和等于该数本身的数)请填空。main(){intm,n,s;for(m=2;m<1000;m++){__
18、__(1)_s=0___;for(n=1;n<=m/2;n++)if(__(2)m%n==0___)s+=n;if(__(3)s==m___)prin