第二套及答案

2026/4/30 1:54:26

一、选择题:

1、C语言规定,一个C源程序的主函数名必须为(A) main

function program

include

2、结构化程序模块不具有的特征是(B ) 只有一个入口和一个出口 要尽量多使用goto语句

一般有顺序、选择和循环3种基本结构 程序中不能有死循环

3、指出下面正确的表达式: (c ) A. a+b=5 B. 56=a++ C. i=i++ D. 5.6+6.2%3.1

4、在TC中,表达式: 10!=9 的值是( d )。 a)true b)非零值 c)0 d)1

5、在TC中,设a=3,b=4,c=5,d=6,则表达式:b

6、设先有定义:int a=10;

则表达式a+=a*=a的值为( D ) 10 100 1000 200

7、以下语句的输出结果是(B) unsigned int b=-1; printf(\

65535 -1 0 1

8、为了避免嵌套的if~else语句的二义性,C语言规定else总是(C ) 与缩排位置相同的if组成配对关系 与在其之前未配对的if组成配对关系

与在其之前未配对的最近的if组成配对关系 与同一行上的if组成配对关系

9、下面这个程序的输出是什么? d

#include main() {

int y=10; while(y--);

printf(\

。 }

A. y=0 B. while构成死循环 C. y=1 D. y=-1

10、在TC中,若x=0,y=1,则语句while(x==y){x++; break;} 循环体执行次数是(d )。 a)3 b)2 c)1 d)0

11、关于下面for循环语句描述正确的是:( B ) for(i=0,k=-1;k=1;i++,k++) printf(\循环结束条件不合法 循环是一个无限循环 循环体执行2次 循环体执行1次

12、下面有关for循环的正确描述是(D ) for循环只能用于循环次数已经确定的情况 for循环是先执行循环体语句,后判定表达式 在for循环中,不能用break语句跳出循环体

13、for循环语句中,可以包含多条语句,但要用花括号括起来36、C语言中( D ) 不能使用do~while语句构成的循环

do~while语句构成的循环必须用break语句才能退出 do~while中,当while语句中的表达式值为非零时结束 do~while中,当while语句中的表达式值为零时结束 14、对于for(表达式1;;表达式3)可理解为( B ) for(表达式1;0;表达式3) for(表达式1;1;表达式3)

for(表达式1;表达式1;表达式3) for(表达式1;表达式3;表达式3) 16、16、下列循环体执行( D )次. k=70;

while(k=0) k-=1; 70次 69次 无限次 0次

17、一个函数返回值的类型取决于( B ) 调用该函数的主调函数的类型 定义函数时指定或缺省的函数类型 调用函数时临时决定

return语句中表达式的类型

18、在一个源程序文件中定义的全局变量的有效范围为( C )

一个C程序的所有源程序文件 该源程序文件的全部范围

从定义处开始到该源程序文件结束

函数内全部范围

19、在C语言中,定义数组int a[7]={3,4,5,6,7,8,9},则a[5]的值为(d )。 a)9 b)6 c)7 d)8

20、在TC中,若有定义和语句:

char s[10];s=\

则结果是(以下u代表空格)(d) a)输出abcd b)输出a c)输出abcduuuuu d)编译不通过

21、在C语言中,引用数组元素时,其数组下标的数据类型允许是(C ) 字符常量; 浮点型常量;

整型常量或整型表达式; 任何类型的表达式;

22、对于下面程序段,执行的结果是(B )。

char c[5]={‘a’,’b’,’\\0’,’c’,’\\0’}; printf(“%s”,c); ‘a’’b’ ab ab c a,b

23、有以下程序 D

main()

{ int a[9]={1,2,3,4,5,6,7,8,9},i,*p,*q; p=a;q=&a[7]; while(p!=q)

{(*p)++;p++;q--;}

for(i=0;i<8;i++)printf(\}

程序运行后的输出结果是 ( a )

A)2,3,4,5,5,6,7,8,9, B)1,2,3,4,5,6,7,8,9, C)2,3,4,5,6,7,8,9,10, D)1,2,3,4,5,7,8,9,10,

24、在TC中,定义 int s[]={1,2,3,4},*p=&s[1];表达式*(p+2)的值是( d ) a)1 b)2 c)3 d)4

25、若有语句:int a=4, *p=&a;,下面均代表地址的一组选项是( C )

A) a,p,&*a B) *&a,&a,*p C) &a,p,&*p D) *&p,*p,&a

26、有语句:int a[10],*p =a;,则下面的语句中,不正确的是(D )。

a) p=p+1;

b) *p=*p+1; c) a[0]=a[0]+1; d) a=a+1;

27、若有以下说明和定义 C

union dt

{int a;char b;double c;}data; 以下叙述中错误的是

A)data的每个成员起始地址都相同

B)变量data所占的内存字节数与成员c所占字节数相等

C)程序段:data.a=5;printf(\输出结果为5.000000 D)data可以作为函数的实参

28、当说明一个结构体变量时,系统分配给它的内存是( A )。 各成员所需内存量的总和。 结构体中第一个成员所需内存量 成员中占内存量最大者所需的容量 结构体中最后一个成员所需内存量

29、下面关于文件的操作方式说明错误的是: d “r” 为只读打开一个字符文件

“w” 为只写打开一个字符文件,文件指针指向文件首部

“a” 打开字符文件,指向文件尾,在已存在的文件中追加数据 “rb” 为只写打开一个二进制文件

30、下面关于标准设备文件及其FILE结构指针变量名对应错误的是: d 标准输入(键盘),对应stdin 标准输出(显示器),对应 stdout 标准辅助输入输出(异步串行口),对应stdaux 标准打印(打印机),对应stderr

二、判断题:

1、 _55a是合法的标识符。 对 2、C语言中字符型、整型、实型都能用八进制表示 错 3、switch语句中,每一个case的冒号后面都允许跟有多条语句。 对 4、函数不能调用本身。 错 5、若一个函数的返回类型为void,则表示其没有返回值 对 6、数组元素可以像普通变量一样使用。 对 7、c语言中,允许用字符串来直接初始化字符数组。 对 8、假设int型数组a的起始地址为2400,则元素a[3]的地址为:2400+4×2=2408。 错 9、一个变量的指针即该变量的地址,专门存放地址的变量,称为指针变量。 对 10、有int a=2,*p; p=&a; 假设变量a的地址为1000,执行 p=p+3以后,p的值为1003。 错

三、改错题:

2、下列程序的功能是:求出以下分数序列的前n项之和,

2/1,3/2,5/3,8/5,13/8,21/13,??

请改正程序中的错误,并运行修改后程序,给出n=30时程序的结果(按四舍五入保留6位小数)。 程序:

#include #include f(long x)

{ long a,b,c,k; double s; clrscr();

s=0.0; a=2; b=1; for(k=1;k<=x;k++) s=s+a/b;

c=a; a=a+b; b=c; return s; }

main() { long n;

scanf(“%ld”,&n);

printf(\结果: %.6lf\\n\}

double {s=s+(float)a/b; c=a; a=a+b; b=c;} 48.840601

四、填空题:

例4:求 nm+(n+1)m-1+(n+2)m-2+??+mn,其中m>n,当n=25,m=92时的值。 double f(double x,double y ) { double I,a=1;

for(I=1;I<=y;I++) a=a*x; return a; } main( )

{ double s=0,n,m,I,j;

double f(double x,double y); scanf(“%lf%lf”,&n,&m); for(I=n,j=m;I<=m;I++,j--) s=s+f(I,j); printf(“\\n%lf”,s); }

五、编程题:

2、求1000以内的最大的20个素数之和。18580


第二套及答案.doc 将本文的Word文档下载到电脑
搜索更多关于: 第二套及答案 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219