c语言综合练习题及问题详解

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

模拟试题一

一、选择题(本大题30分,每小题2分)

1.下列说确的是。

A)main函数必须放在C程序的开头

B)main函数必须放在C程序的最后

C)main函数可以放在C程序的中间部分,但在执行C程序时是从程序开头执行的

D)main函数可以放在C程序的中间部分,但在执行C程序时是从main函数开始的

2.在下面几组数据类型中, 全为最常用的基本数据类型的是哪一组:。

A)整型实型字符型 B)整型数组指针

C)数组结构体共用体 D)指针逻辑型空类型

3.若有说明语句:char c= ‘\64’ ; 则变量C包含:。

A)1个字符 B)2个字符

C)3个字符 D)说明不合法,C值不确定

4.设有如下定义和执行语句,其输出结果为:。

int a=3,b=3;

a = --

b + 1; printf(“%d %d”,a,b);

A)3 2 B)4 2 C)2 2 D)2 3

5.C语言中,运算对象必须是整型数的运算符是。

A)% B)\ C)% 和 \ D)**

6.能正确表示x的取值围在[0,100]和[-10,-5]的表达式是。

A)(x<=-10)||(x>=-5)&&(x<=0)||(x>=100)

B)(x>=-10)&&(x<=-5)||(x>=0)&&(x<=100)

C)(x>=-10)&&(x<=-5)&&(x>=0)&&(x<=100)

D)(x<=-10)||(x>=-5)&&(x<=0)||(x>=100)

7.程序段如下

int k=0;

while(k++<=2); printf("last=%d\n",k);

则执行结果是last= 。

A)2 B)3 C)4 D)无结果

8.下面有关for循环的正确描述是。

A)for循环只能用于循环次数已经确定的情况

B)for循环是先执行循环体语句,后判断表达式

C)在for循环中,不能用break语句跳出循环体

D)for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来

9.若二维数组a有m列,则a[I][j]元素前的数组元素个数为:。

A)j*m+i B)i*m+j C)i*m+j-2 D)i*m+j+1

10.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( )

{ int a=2, i ;

for(i=0;i<3;i++) printf(“%4d”,f(a) ) ; }

f( int a)

{ int b=0,c=3;

b++; c++; return(a+b+c); }

A)7 10 13 B)7 7 7

C)7 9 11 D)7 8 9

13.在C语言程序中,若未在函数定义时说明函数类型,则函数默认的类型为:。 A)

void B)double C)int D)char

14.在说明一个结构体变量时系统分配给它的存储空间是。

A)该结构体中第一个成员所需存储空间

B)该结构体中最后一个成员所需存储空间

C)该结构体中占用最大存储空间的成员所需存储空间

D)该结构体中所有成员所需存储空间的总和

15.使用fseek函数可以实现的操作是。

A)改变文件的位置指针的当前位置

B)文件的顺序读写

C)文件的随机读写

D)以上都不对

二、判断题(本大题10分,每小题1分)

1、C程序可以由若干个源文件组成,因此最小的功能单位是源文件,最小编译单位的是函数。()

2、C程序有三种结构化程序设计方法,分别顺序结构、选择结构和循环结构。()

3、在if语句中,if子句与else子句都可以单独使用,构成了if语句的两种缺省形式。()

4、for语句作为循环控制语句时,其括号各个表达式及其后的分号都可缺省。()

5、C程序中函数不可以嵌套定义但可以嵌套调用。()

6、字符串可以用来给数组赋值,在C程序的执行语句中可以直接用字符串给数组名赋值。()

7、数组名也可作为函数参数使用,此时数组名代表数组的起始地址。()

8、在函数的复合语句中定义的变量在本函数围有效。()

9、声明一个结构体类型的一般形式为struct 结构体名 {成员表列};。()

10、ANCI C规定了标准输入输出函数库,用fseek()函数来实现打开文件。()

三、程序填空题(本大题12分,每小题2分)

1.下面程序可求出1~1000的自然数中所有的完数(因子和等于该数本身的数)请填空。

main( )

{ int m, n, s;

for(m=2;m<1000;m++)

{ ____(1)____;

for(n=1;n<=m/2;n++)

if(__(2)___) s+=n;

if(__(3)___) printf(“%d\n”, m); } }

2.. 用起泡法对十个数由大到小排序。

main( )

{ int a[11], i, j, t;

printf(“input 10 numbers: \n”);

for(i=1;i<11;i++)

scanf(“%d”,&a[i]);

printf(“\n”);

for (j=1;j<=9;j++)

for(i=1; _(1)__; i++)

if (__(2)___)

{t=a[i]; a[i]=a[i+1]; __(3)__ ;}

printf(“the sorted numbers: \n”);

for ( i=1; i<11; i++)

printf(“%d”,a[i]);

}

四、写出下面程序的执行结果(本大题24分,每小题4分)

1.#include

main( )

{ char c=‘A’+‘10’-‘5’;

printf(“c=%c\n”,c); }

2.#include

main( )

{ int a,b,c;

a=1;b=2;c=3;

if(a>b)

if(a>c)

printf(“%d\n”,a);

else printf(“%d\n”,b);

printf(“over\n”); }

3. main( )

{ char a[6][6], i, j;

for(i=0;i<6;i++)

for(j=0;j<6;j++)

{ if ( i

相关文档
最新文档