c语言期末题库选择题

更新时间:2024-01-25 12:53:02 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

1.以下程序的输出结果是 c 。

main()

{ struct cmplx { int x;; int y;

}cnum[2] = {1, 3, 2, 7};

printf(\}

A.0 B.3 C.6 D.1

2.设有以下语句c

typedef struct S { int g; char h; } T; 则下面叙述中正确的是 。 A.可用S定义结构体变量 B.T ê? struct SààDíμ?±?á? C.可以用T定义结构体变量 D.S ê? struct ààDíμ?±?á? 3.以下叙述中错误的是(d)。

A.在利用fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据

B.二进制文件打开后可以先读文件的末尾,而顺序文件不可以 C.在程序结束时,应当用fclose函数关闭已打开的文件 D.不可以用FILE定义指向二进制文件的文件指针

4.文件中有一个位置指针p,指向当前读写的位置,不可使p所指文件的 位置返回到文件的开头的是(c)。 A.fseek(p,0,0);

B.fseek(p,0,SEEK_SET); C.fseek(p,-3L,SEEK_CUR); D.rewind(p);

5.不合法的八进制数是d A.01 B.0

C.07700

D.028

6.执行下列语句后变量x和y的值是(b)。 y=10;x=y++; A.x=10,y=11 B.x=11,y=10 C.x=11,y=11 D.x=10,y=10

7.以下不正确的if语句形式是(d)。 A.if(xy&&x!=y); C.if(x==y) x+=y;

D.if(x!=y) scanf(\ 8.若输入ab,程序运行结果为(a)。 main()

{ static char a[3]; scanf(\

printf(\ } A.b, B.a,b

C.程序出错 D.a,

9.以下程序段给数组所有元素输入数据,应在下划线处填入的是d

main()

{ int a[10], i = 0; while(i < 10)

scanf(\ … }

A.&a[i+1] B.a+i C.&a[++i] D.a+(i++)

10以下叙述中正确的是(a)。

A.静态(static)类别变量的生存期贯穿于整个程序的运行期间

B.函数的形参都属于全局变量

C.未在定义语句中赋初值的auto变量和static变量的初值都是随机值 D.全局变量的作用域一定比局部变量的作用域范围大 11.下列叙述中不正确的是d

A.C程序的main函数可以没有参数

B.C程序的main函数若有参数时,第一个参数的值最少是1 C.C程序的main函数可以有参数

D.main函数的第一个参数必须是整数,其名字必须是argc;第二个参数可以定义成:char *argv[],名字必须是argv。

12.为了提高程序的运行速度,在函数中对于整型或指针可以使用(d)型的变量。 A.static B.auto C.extern D.register

13.以下程序的输出结果是c main()

{ char s[] = \

for(p = s; p < s + 4; p++) printf(\

} A.

B.

C.

D.

14.以下程序的输出结果是c void fun( int *s)

{ static int j = 0;

do

s[j] += s[j+1]; while(++j < 2);

}

main()

{ int k, a[10 ]= {1, 2, 3, 4, 5};

for( k = 1; k < 3; k++) fun(a);

for( k = 0; k < 3; k++) printf(\

} A.34756 B.234 C.357 D.12345

15.以下程序的输出结果是 d 。

struct st { int x; int *y; } *p;

int dt[4] = {10, 20, 30, 40};

struct st aa[4] = { 50, &dt[0] , 60, &dt[0] , 60, &dt[0] ,

60, &dt[0]};

main() { p = aa;

pritnf(\ pritnf(\ pritnf(\}

A.

B.

C.

D.

16.C语言中,文件由(b)。 A.记录组成

B.由字符(字节)序列组成 C.由数据块组成 D.由数据行组成

17.整型变量x和y的值相等、且为非0值,则以下选项中,结果为零的 表达式是(a)。 A.x ^ y B.x || y C.x & y D.x | y

18.下列变量定义中合法的是(a)。 A.short _a=1-.1e-1; B.float 2_and=1-e-3; C.long do=0xfdaL; D.double b=1+5e2.5;

19.下列程序段的输出结果为(c)。 int a=7,b=9,t; t=a*=a>b?a:b; printf(\A.7 B.49

C.63 D.9

20.下列运算符中优先j级别最低的运算符是c A.+ B.!= C.|| D.<=

21.以下程序的运行结果是(b)。 main() { int n;

for(n=1;n<=10;n++) {

if(n%3==0) continue; printf(\ } } A.12

B.12457810 C.1234567890 D.369

22.以下程序的输出结果是a main()

{ int x, i;

for(i = 1; i <= 100; i++) { x = i;

if( ++x % 2 == 0) if( ++x % 3 == 0 ) if( ++x % 7 == 0) printf(\

}

printf(\

}

A.28 70 B.39 81 C.42 84

D.26 68

23.以下对一维整型数组a的正确说明是()。 A.#define SIZE 10 (换行) int a[SIZE]; B.int a(10);

C.int n; scanf(\D.int n=10,a[n];

24.C语言源程序文件经过C编译程序编译后生成的目标文件的后缀为c A..c B..bas C..obj D..exe

25.若使用一维数组名作函数实参,则以下正确的说法是(d)。 A.实参数组类型与形参数组类型可以不匹配 B.在被调用函数中,必须考虑形参数组的大小 C.实参数组名与形参数组名必须一致 D.必须在主调函数中说明此数组的大小 26.以下程序的输出结果是d main()

{ int a[] = {1, 2, 3, 4}, i, x = 0;

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

{ sub(a, &x); printf(\printf(\

}

sub(int *s, int *y) { static int t = 3;

*y = s[t]; t--;

} A.4 4 4 4 B.0 0 0 0 C.1 2 3 4 D.4 3 2 1

27.sizeof(float)是(b)。 A.一种函数调用 B.一个整型表达式 C.一个双精度型表达式

D.一个不合法的表达式

28.enum a {sum=9,mon=-1,tue}; 定义了(d)。 A.枚举变量 B.整数9和-1 C.3个标识符 D.枚举数据类型

29.以下可作为函数fopen中第二个参数的正确格式是(b)。 A.w B.\C.'w' D.(w)

30.在C程序中,可把整型数以二进制形式存放到文件中的函数是(b)。 A.fread函数 B.fprintf函数 C.fputc函数 D.fwrite函数

31.已定义ch为字符型变量,以下赋值语句中错误的是(d)。 A.ch=NULL; B.ch=62+3; C.ch='\\xaa'; D.ch='\\';

32.下列选项中,合法的C语言关键字是(d)。 A.cher B.integer C.VAR D.default

33.下面四个选项中,均是不合法的用户标识符的选项是(c)。 A._123 temp int B.A P_0 do

C.b-a goto int D.float la0 _A

34.下列程序的输出为(b)。 main()

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

printf(\ }

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

35.以下不符合C语言语法的赋值语句是(c)。 A.a=b=5;

B.y=(a=3,6*5); C.a=1,b=2 D.j=j+1;

36.C语言的switch语句中case后b A.可为任何量或表达式

B.只能为常量或常量表达式

C.可为常量或表达式或有确定值的变量及表达式 D.只能为常量

37.下面程序的运行结果是a

#include main() {

int y=10;

do{y--;}while(--y); printf(\\n\); }

A.0 B.1 C.8 D.-1

38.对 for(表达式1; ;表达式3) 可理解为(a)。 A.for(表达式1;1;表达式3) B.for(表达式1;0;表达式3)

C.for(表达式1;表达式1;表达式3) D.for(表达式1;表达式3;表达式3)

39.下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,请选择填空c

#include main() {

int i=0,j,k;

do{i++;k=316-13*i;}while(______); j=k/11;

printf(\); }

A.k==0 B.k/11 C.k D.k/11==0

40.若有说明:int i, j=2,*p=&i;,则能完成i=j赋值功能的语句是(c)。 A.i=*p; B.i=&j; C.*p=*&j; D.i=**p;

41.以下程序的功能是:a main(){

int a=10,b=20,t; int *x=&a,*y=&b; t=*x; *x=*y; *y=t; }

A.交换a,b两个变量的值 B.交换a,b两个变量的地址 C.比较a,b的大小 D.以上都错

本文来源:https://www.bwwdw.com/article/a7cw.html

Top