大连理工大学c语言题库(选择判断填空)

更新时间:2024-01-08 14:55:01 阅读量: 教育文库 文档下载

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

选择

1、下列数据中,为字符串常量的是(D)。

A、'A'

B、How do you do. C、$abc D、\

2、以下所列的C语言常量中,错误的是(B )。

A、0xFF B、1.2e0.5 C、2L D、'\\72'

3、以下程序的输出结果是(D)。 main()

{float x=3.6; int i; i=(int)x;

printf(\}

A、x=3.600000,i=4 B、x=3 i=3.600000 C、x=3,i=3 D、x=3.600000,i=3

4、若k是整型,则以下程序段的执行结果是:(B ) k=-3;

if(k<=0) printf(\ else printf(\

A、####

B、有语法错误,无结果 C、&&&& D、####&&&&

5、若x=2,y=3则x||y的结果是(C )。

A、3 B、0 C、1 D、2

6、针对下列程序段回答问题(B ). for(t=1;t<=100;t++) {

scanf(\ if(x<0) continue; printf(\}

A、x>=0时什么也不输出 B、最多允许输出100个非负整数

C、printf函数永远也不执行 D、当x<0时整个循环结束

7、以下程序的执行结果是( B)。 main()

{ int num = 0;

while( num <= 2 ) { num++; printf( \

A、0,1,2 B、1,2,3, C、1,2,3,4, D、1,2,

8、选择正确的输入语句( D)。:(其中:char string[20];)使得string的内容为\student\

A、scanf(\B、scanf(\C、scanf(\D、gets(string);

9、对以下说明语句 int a[10]={6,7,8,9,10}; 的正确理解是(B)。

A、将5个初值依次赋给a[6]至a[10] B、将5个初值依次赋给a[0]至a[4]

C、因为数组长度与初值的个数不相同,所以此语句不正确 D、将5个初值依次赋给a[1]至a[5]

10、以下标识符中可以作为用户函数名的是( D ).

A、struct B、int C、union D、go_to

11、以下叙述错误的是(B).

A、函数调用可以出现在一个表达式中 B、函数调用可以作为一个函数的形参 C、函数调用可以作为一个函数的实参 D、函数允许递归调用

12、若用数组名作为函数的实参,传递给形参的是(B)。

A、数组第一个元素的值 B、数组的首地址 C、数组元素的个数 D、数组中全部元素的值

13、在C语言程序中(B)。

A、函数的定义可以嵌套,但函数的调用不可以嵌套 B、函数的定义不可以嵌套,但函数的调用可以嵌套 C、函数的定义和函数调用不可以嵌套 D、函数的定义和函数调用均可以嵌套

14、下列说法中正确的是(B).

A、函数调用不占运行时间,只占编译时间. B、宏替换不占运行时间,只占编译时间. C、有参数的宏定义,就是函数.

D、在定义宏时,宏名与带参数的括弧之间可以加空格.

15、若有说明:int *p,m=5,n;以下正确的程序段是(D)。

A、scanf(\B、p=&n;scanf(\C、p=&n;scanf(\D、p=&n;scanf(\

16、对于下述定义,不正确的叙述是(B ). union data {int i; char c; float f; }a,b;

A、变量a的地址和它的各成员地址都是相同的

B、可以在定义类型的同时定义变量a,并对a的任意成员初始化 C、变量a所占内存的长度等于成员f的长度

D、如果有定义语句 union data a={6};则对变量a的初始化是正确的

17、有两个整型变量dog和cat,若要从磁盘文件把数据读到其中,正确的形式是(B ).

A、fscanf(dog ,2,1,fp);

B、fscanf(fp,\C、fscanf(dog ,cat,2,1,fp); D、fscanf(fp,\18、sizeof(float)是(C)。

A、一个浮点表达式 B、一个不合法的表达式

C、运算结果是一个整型表达式。 D、一种函数调用

19、用下面的scanf函数输入数据,使得i=10,k=15选择正确的键盘输入方法(B ).

(用\表示回车,U表示空格) main()

{int i,k;

scanf(\

}

A、i=10[CR]k=15[CR] B、i=10,k=15[CR] C、10U15[CR] D、10,15[CR]

20、逻辑表达式3<2||-1&&4>3-!0的值为:(A )

A、1 B、3 C、0 D、2

21、语句while(!E);中的表达式!E等价于(D)。

A、E==1 B、E!=0 C、E!=1 D、E==0

22、以下正确的描述是(A ).

A、只能在循环体内和switch语句内使用break语句 B、continue语句的作用是终止整个循环的执行 C、从多层嵌套的外层循环中退出时,只能使用goto语句 D、在循环体内使用break和continue语句的作用相同 23、若有说明 int a[3][4];则a数组元素的非法引用是(B)。

A、a[1][3] B、a[0][4] C、a[0][2*1] D、a[4-2][0]

24、在C语言的函数中,下列正确的说法是(B)。

A、形参可以是常量和变量 B、可以有也可以没有形参 C、数组名不能作形参 D、必须有形参

25、int a[10]={1,2,3,4,5,6,7,8};int *p;p=&a[5];p[-3]的值是()。

A、4 B、2 C、不一定 D、3

26、若有以下程序段,则使用错误的选项是(C ). struct student {

int num; int age;

};

struct student stu[3] ={{1001,20},{1002,19},{1004,20}}; main(); {

struct student *p; p=stu; … ; }

A、(*p).num B、(p++)->num C、p=&stu.age D、p++

一、单项选择(30分)

1. 已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示的字符常量'\\101'是(A)。【3】

A、字符A B、字符a C、字符e D、非法的常量

2. 下列程序段的输出结果为(C)。 【4】 float k=0.8567; printf(\

A、85.6% B、85.6%% C、85.7% D、.857

3. 下面的scanf函数输入数据,使得a=10,b=15,s1='S',s2='s',x1=1.5,x2=-3.75,x3=67.8,

正确的键盘输入方法是(A). (用\表示回车,U表示空格) 【4】 main() {int a,b;

float x1,x2,x3;

char s1,s2;

scanf(\}

A、10UUU15Ss1.5U-3.75U+1.5U67.8[CR] B、10UUU15USUs1.5U-3.75U+1.5U67.8[CR] C、10UUU15USUsU1.5U-3.75U+1.5U67.8[CR] D、10UUU15Ss1.5U-3.75U+1.5,67.8[CR]

4. C语言的if语句中,用作判断的表达式为(A)。【5】 A、任意表达式 B、算术表达式 C、逻辑表达式 D、关系表达式

5. 以下程序的输出结果是:(A) 【5】

main() {int m=5;

if(m++>5) printf(\else printf(\ }

A、6 B、5 C、7 D、4

//;,?&&|| 控制表达式(if switch for while)for三个表达式

6. 以下for循环的执行次数是 for(x=0,y=0;(y=123)&&(x<4);x++);(C)。【6】

A、3次

B、循环次数不定 C、4次 D、是无限循环

7. 以下程序的执行结果是(B)。【6】 main()

{ int num = 0;

while( num <= 2 ) { num++; printf( \

A、0,1,2 B、1,2,3, C、1,2,3,4, D、1,2,

8. 以下不能正确进行字符串赋初值的语句是(A)。【7】

A、char str[5]=\

B、char str[5]={'g','o','o','d'}; C、char *str=\D、char str[]=\

9. 函数调用:strcat(strcpy(str1,str2),str3)的功能是(D)。【7】

A、将串str1复制到串str2中后再连接到串str3之后 B、将串str2连接到串str1之后再将串str1复制到串str3中 C、将串str1连接到串str2之后再复制到串str3之后

D、将串str2复制到串str1中后再将串str3连接到串str1之后

10. 以下函数的类型是(C)。【8】 fff(float x) {

return 5; }

A、void 类型

B、与参数x的类型相同 C、int类型 D、无法确定

11. 设有如下函数【8】 fac(int x) {

float y=1.0; return(x*y);

}

则函数的类型为(A).

A、int型 B、float型 C、无法确定 D、void型

12. 设有宏定义#define PI 3.14 和#define S(r) PI*r*r,则S(2)的值为(B). 【8】

A、6.28 B、12.56 C、3.14 D、9.42

13. 下列关于指针定义的描述,错误的是(A)。【9】

A、指针是一种变量,该变量用来存放某个变量的值 B、指针是一种变量,该变量用来存放某个变量的地址值 C、指针变量的类型与它所指向的变量类型一致 D、指针变量的命名规则与标识符相同

14. 以下程序的输出结果是(A). 【9】 main()

{char str[ ]=\

A、68

B、不确定的值 C、字符D的地址 D、0

15. 对结构体类型的变量的成员的访问,无论数据类型如何都可使用的运算符是(B)。【10】

A、& B、. C、* D、->

单选题

下列关于单目运算符++、--的叙述中正确的是(D)。

A、它们的运算对象可以是int型变量,但不能是double型变量和float型变量 B、它们的运算对象可以是任何变量和常量

C、它们的运算对象可以是char型变量和int型变量,但不能是float型变量 D、它们的运算对象可以是char型变量、int型变量和float型变量

执行下列程序后,其输出结果是(D)。 main()

{int a=9; a+=a-=a+a;

printf(\}

A、18 B、-9 C、9 D、-18

打印语句printf(\在屏幕上正确的输出形式是(C).

A、sTUDENDS B、TUDENTS C、STUDENT D、sTUDENTS

已知键盘输入a=4,b=3,下面程序输出的结果是(C). main()

{ int a,b,s;

scanf(\ s=a;

if(a

printf(\}

A、9 B、13 C、16 D、15

若给定条件表达式(m)?(a++):(a--),则其中表达式m(B)。

A、和(m==0)等价 B、和(m!=0)等价 C、和(m==1)等价 D、和(m!=1)等价

执行语句 for(i=1;i++<4;); 后变量 i 的值是(B)。

A、3 B、5 C、4 D、不定

以下描述中正确的是(C)。

A、由于 do-while 循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句 B、do-while 循环中,根据情况可以省略 while

C、在 do-while 循环体中,必须有能使循环退出的操作。

D、do-while 循环由do开始,用while结束,在 while(表达式)后面不能写分号

int a[10];合法的数组元素的最小下标值为(D)。

A、10 B、9 C、1 D、0

以下正确的函数定义是(C).

A、double fun(int x, int y) { z=x+y; return z;} B、fun(x, y) { int x, y; double z; z=x/y; return z;} C、float f(int x, int y) {float z; z=x/y; return z;} D、fun(int x, y) { int z; return z; }

char a1[]=\将a1串连接到a2串后面的语句是(A)。

A、strcat(a2,a1); B、strcat(a1,a2); C、strcpy(a1,a2); D、strcpy(a2,a1);

若有 char s1[]=\则下列语句中能够实现当字符串s1大于字符串s2时,输出s2的语句是(C)。

A、if(strcmp(s2,s1)>0)puts(s2); B、if(strcmp(s2,t)>0)puts(s2); C、if(strcmp(s1,t)>0)puts(s2); D、if(strcmp(s1,s1)>0)puts(s2);

已知有宏定义#define SQR(a) 2*a*a,则SQR(3+4)的值为(A).

A、22 B、32 C、98 D、18

若有说明:int *p,m=5,n;以下正确的程序段是(D)。

A、scanf(\B、p=&n;scanf(\C、p=&n;scanf(\D、p=&n;scanf(\

char h,*s=&h;可将字符H通过指针存入变量h中的语句是(A)。

A、*s='H'; B、s='H' C、*s=H; D、s=H;

定义结构体的关键字是(A)。

A、struct B、typedef C、enum D、union

单选

下述正确的C语言常量是:(C).

A、E2 B、5.0E C、3e-3 D、1.5E2.5

若有定义:int a=7;float x=2.5,y=4.7; 则表达式x+a%3*(int)(x+y)%2/4的值是(D)。

A、0.000000 B、2.750000 C、3.500000 D、2.500000

根据下面的程序,使i=123,c1='A',c2='B'哪一种是正确的键盘输入方法(C). (规定用[CR]表示回车,U表示空格) main() {

int i;

char c1,c2;

scanf(\}

A、123AUB[CR] B、123UAUB[CR] C、123AB[CR] D、123[CR]AB[CR]

下列程序段的输出结果为(B)。

int a=7,b=9,t; t=a*=a>b?a:b; printf(\

A、49 B、63 C、7 D、9

int a=1,b=2,c=3; if(a>c)b=a;a=c;c=b;则c的值为(C)。

A、1

B、3 C、2 D、不一定

t为int类型,进人下面的循环之前,t的值为0 while( t=1 ) { ……}

则以下叙述中正确的是(C)。

A、循环控制表达式的值为0 B、循环控制表达式不合法 C、循环控制表达式的值为1 D、以上说法都不对

针对for循环语句,for(表达式1;表达式2;表达式3),下列说法正确的是(B).

A、break语句可以一次性跳出多层嵌套循环 B、break语句只能跳出最内层循环

C、continue语句可以一次性跳出多层嵌套循环 D、continue语句可以跳出最内层循环

以下不正确的定义语句是(C)。

A、double x[5]={2.0,4.0,6.0,8.0,10.0}; B、char c1[]={'1','2','3','4','5'}; C、int y[5]={0,1,3,5,7,9};

D、char c2[]={'\\x10','\\xa','\\x8'};

以下正确的说法是(A).

A、函数的类型决定返回值的类型

B、定义函数时,形参的类型说明可以放在函数体内 C、return后面不能为表达式

D、如果形参与实参的类型不一致,以实参类型为准

C语言规定,函数返回值的类型是由(A)。

A、在定义该函数时所指定的函数类型所决定 B、return语句中的表达式类型所决定 C、调用该函数时系统临时决定

D、调用该函数时的主调函数类型所决定

函数fun用于将一字符串按相反次序显示,则横线上的表达式为(D). void fun(char *s) { if(! *s)

return; _____;

printf(\

}

A、printf(\B、fun(*(s+1));

C、printf(\D、fun(s+1);

在宏定义#define PI 3.14159中, 用宏名替换一个(A).

A、字符序列 B、函数名 C、单精度数 D、双精度数

若有说明:int *p1,*p2,m=5,n; 以下均是正确赋值语句的选项是(A)。

A、p1=&m;p2=p1; B、p1=&m;p2=&p1 C、p1=&m;*p2=*p1; D、p1=&m;p2=&n;*p1=*p2;

单选

下面四个选项中,均是不合法的用户标识符的选项是(D)。 A、float la0 _A B、A P_0 do

C、_123 temp int D、b-a goto int

表达式18/4*sqrt(4.0)/8值的数据类型为(A)。 A、double B、float C、int D、不确定

设:long w=65535,t=7654321;

根据下面的输出结果,正确的程序段是(C). w=65535,t=7654321 end

A、printf(\B、printf(\C、printf(\D、printf(\

选择结构中的条件与循环结构中循环成立的条件, 在写法上可以是任一表达式,但其值只能被判断为\真\或\假\。 哪个数作为逻辑\假\值(A)。

A、0 B、-1

C、非零的数 D、1

假定有以下变量定义: int k=7,x=12;

则能使值为3的表达式是:(A) A、(x%=k)-(k%=5) B、x%=(k-k%5) C、x%=k-k%5 D、x%=(k%=5)

在以下给出的表达式中,与 do--while(E)语句中的(E)不等价的 表达式是(B)。 A、(E>0||E<0) B、(E==0) C、(!E==0) D、(E!=0)

下面有关 for 循环的正确描述是(C)。

A、for 循环是先执行循环体语句,后判断表达式 B、在 for 循环中,不能用 break 语句跳出循环体

C、for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 D、for 循环只能用于循环次数已经确定的情况

在C语言中,一维数组的定义方式为:类型说明符 数组名(B)。 A、[整型常量]或[整型表达式] B、[正整型常量表达式] C、[整型表达式] D、[常量表达式]

以下正确的说法是(A).

A、函数的类型决定返回值的类型

B、定义函数时,形参的类型说明可以放在函数体内 C、return后面不能为表达式

D、如果形参与实参的类型不一致,以实参类型为准

若调用一个函数,且此函数中没有return语句,则正确的说法是: 该函数(B)。 A、没有返回值

B、返回一个不确定的值 C、返回若干个系统默认值

D、能返回一个用户所希望的值

设函数的调用形式如下: f((x1, x2),(y1,y2,y3)),则函数有 (A)个形参. A、2 B、4 C、3 D、5

在\文件包含\的预处理中,被包含的文件应是(A). A、源文件 B、可执行文件 C、目标文件 D、批处理文件

字符串指针变量中存入的是(A)。 A、字符串的首地址 B、字符串变量 C、第一个字符 D、字符串

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

{char str[ ]=\

A、68

B、字符D的地址 C、不确定的值

D、0

C语言中,定义结构体的保留字是(C)。 A、typedef B、union C、struct D、enum

一、单项选择题

1、以下字符中不是转义字符的是(A)。

A、'\\c' B、'\\b' C、'\\\\' D、'\\a'

2、设a=12,且a定义为整型变量。执行语句a+=a-=a*=a;后a的值为(A)。 A、0

B、144 C、132 D、12

3、已定义float x=1.25,y=3.37;

根据下面的输出结果,正确的输出语句是(C). y+x=4.62,y-x=2.12

A、printf(\B、printf(\C、printf(\D、printf(\

4、执行下面程序段后,b的值为(A).

int s=35; char t='A'; int b;

b=((s&&4)&&(t<'a'));

A、1 B、3 C、2 D、0

5、若k是整型,则以下程序段的执行结果是:(B)

k=-3;

if(k<=0) printf(\ else printf(\

A、####

B、有语法错误,无结果 C、&&&& D、####&&&&

6、设j和k都是int类型,则下面的for循环语句(D)。 for(j=0,k=0;j<=9&&k!=876;j++) scanf(\

A、最多执行9次 B、是无限循环

C、循环体一次也不执行 D、最多执行10次

7、以下正确的描述是(A).

A、只能在循环体内和switch语句内使用break语句 B、continue语句的作用是终止整个循环的执行 C、从多层嵌套的外层循环中退出时,只能使用goto语句

D、在循环体内使用break和continue语句的作用相同

8、以下能对一维数组a进行正确初始化的语句是(B)。 A、int a[10]={}; B、int a[]={0}; C、int a[10]={10*1}; D、int a[10]=(0,0,0,0,0)

9、以下正确的说法是(A).

A、函数的类型决定返回值的类型

B、定义函数时,形参的类型说明可以放在函数体内 C、return后面不能为表达式

D、如果形参与实参的类型不一致,以实参类型为准

10、以下程序的输出结果为(C)。

main()

{int a=1,b=2,c=3,d=4,e=5;

printf(\ }

int func(int x,int y) { return(x+y); }

A、9 B、15 C、13

D、函数调用出错

11、以下正确的说法是(D)。

A、用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调

B、用户若需调用标准库函数,调用前必须重新定义 C、系统根本不允许用户重新定义标准库函数

D、用户可以重新定义标准库函数,若如此,该函数将失去原有含义

12、在#include命令中,文件名可用双引号或尖括号括起来,对于二者的下列说法中正确的是

(A).

A、用尖括号时,直接按系统标准方式检索文件目录. B、用双引号时,直接按系统标准方式检索文件目录. C、用双括号和尖括号时,都不检查源文件所在的文件目录. D、以上说法都不对.

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

C、结构中最后一个成员所需内存量 D、各成员所需内存量的总和

14、以下程序段给数组所有的元素输入数据,请选择正确答案填入(C)。

#include main()

{ int a[10],i=0;

while(i<10) scanf(\ . . . }

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

15、在定义构造数据类型时,不能(A)。 A、末尾不写分号 B、说明存储类型 C、初始化 D、说明变量

一、单项选择题

1、下列变量说明语句中,正确的是(D)。

A、char a;b;c; B、char:a b c; C、int x;z; D、int x,z;

2、设以下变量均为int类型,则值不等于7的表达式是(A)。

A、(x=6,x+1,y=6,x+y) B、(x=y=6,x+y,y+1) C、(y=6,y+1,x=y,x+1) D、(x=y=6,x+y,x+1)

3、设:

long w=65535,t=7654321;

根据下面的输出结果,正确的程序段是(C). w=65535,t=7654321 end

A、printf(\B、printf(\C、printf(\

D、printf(\

4、设x,y,z,t均为整型变量,则执行以下语句后,t的值为:( B) x=y=z=1;

t=++x||++y&&++z;

A、0 B、1 C、2 D、不定值

5、如果int a=2,b=3,c=0,下列描述正确的是( B )。

A、a&&b>c的结果为假 B、!a!=(b!=c)表达式的值为1 C、a||(b=c)执行后b的值为0

D、a>b!=c和a>(b!=c)的执行顺序是一样的

6、从键盘输入的整数中找出最小值min,输入0时结束.请在A处填写正确语句( D )。 #include \main()

{ int min=0,a; do{

scanf(\ if(min>a) min=a; }while(___A___); printf(\}

A、a=0 B、a==0 C、a>0&&a<0 D、a!=0

7、设有如下程序段: int k=10; while(k==0)

k--;

则下述说明中正确的是( A).

A、循环体一次也不执行 B、循环体执行一次 C、死循环

D、循环体执行10次

8、static char str[10]=\数组元素个数为(D)。

A、6 B、9

C、5 D、10

9、函数调用:strcat(strcpy(str1,str2),str3)的功能是( D)。

A、将串str1复制到串str2中后再连接到串str3之后 B、将串str2连接到串str1之后再将串str1复制到串str3中 C、将串str1连接到串str2之后再复制到串str3之后

D、将串str2复制到串str1中后再将串str3连接到串str1之后

10、C语言程序中必须有的函数是(B)。

A、#include \B、main C、printf D、scanf

11、程序运行结束后,屏幕上输出值为( B). static int x=10; main( ) { int x=3; f( ); x- -;

printf(\ } f( )

{ x++; }

A、10 B、2 C、11 D、3

12、file1.c中有命令,#include ,若file2.c中有全局静态变量a,则( B).

A、a在file1.c中应用extern说明. B、a在file1.c中有效,不必用extern说明. C、a在file1.c中不生效

D、a在file1.c和file2.c中均不生效.

13、若有说明:int n=2,*p=&n,*q=p;,则以下非法的赋值语句是(C)。

A、*p=*q; B、n=*q; C、p=n; D、p=q;

14、以下程序的输出结果是( A).

main()

{char str[ ]=\

A、68

B、不确定的值 C、字符D的地址 D、0

15、使用共用体变量,不可以(A)。

A、同时访问所有成员 B、进行动态管理 C、节省存储空间 D、简化程序设计

单选

1、若变量均已正确定义并赋值,以下合法的C语言赋值语句是(C)。

A、x+n=I; B、x==5; C、x=n/2.5; D、5=x=4+1;

2、下述错误的C语言常量是:(C). A、0xf B、5. C、090 D、.25

3、根据下面的程序,使a=123,c1='o',c2='k'哪一种是正确的键盘输入方法?(B)。

(规定用字符串[CR]表示回车,U表示空格) main() {int a;

char c1,c2;

scanf(\}

A、123UoUk[CR] B、123ok[CR] C、123Uok[CR] D、123oUk[CR]

4、已知键入a=4,b=3,执行下面程序输出的结果是(B).

main()

{ int a,b,s;

scanf(\

s=a;

if(a>b) s=b; s=s*s;

printf(\}

A、13 B、9 C、16 D、15

5、执行下面程序段后,i的值是(A).

int i=10; switch(i)

{case 9: i+=1; case 10: i--; case 11: i*=3; case 12: ++i; }

A、28 B、10 C、9 D、27

6、以下不是无限循环的语句为(D)。

A、while(1){x++;} B、for(;;x++=i);

C、for(i=10;;i--) sum+=i; D、for(y=0,x=1;x>++y;x=i++) i=x;

7、下面程序段运行的结果是(A). x=-1; do{

x=x*x;

}while (!x);

A、循环执行一次 B、有语法错误 C、死循环 D、循环执行两次

8、若有说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是(A)。 A、3 B、无确定值 C、4 D、2

9、若定义int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};char c='a',d,g;

则数值为4的表达式是 (D).

A、a[4] B、a[g-c] C、a['d'-'c'] D、a['d'-c] 10、

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

A、可以在一个函数中定义另一个函数 B、main()函数必须放在其它函数之前 C、构成C程序的基本单位是函数

D、所有被调用的函数一定要在调用之前进行定义

11、下述函数的功能是(C).

int fun(char *x) { char *y=x; while(*y++); return y-x-1; }

A、比较两个字符串的大小 B、求字符串存放位置 C、求字符串的长度

D、将字符串x连接到字符串y后面

12、在执行\文件包含\命令时,下列说法正确的是(A). A、作为一个源程序编译,得到一个目标文件. B、一个 include 命令可指定多个被包含文件. C、在编译时作为两个文件联结.

D、被包含的文件可以是源文件或目标文件.

13、在说明语句:int *f();中,标识符f代表的是(A)。 A、一个返回值为指针型的函数名 B、一个用于指向函数的指针变量 C、一个用于指向一维数组的行指针 D、一个用于指向整型数据的指针变量

14、下面程序的输出结果应该是(B ).

char s[ ]=\ main()

{char *p;

for ( p=s;p

}

A、DCBA B、ABCDBCDCDD C、ABCDABCABA D、ABCD

以下程序段 char *alp[]={\ int j; puts(alp[1]); 的输出结果是(D)。

A、D B、A C、B D、DEF

下列表达式中,可作为C合法表达式的是(D)。

A、3.0%2 B、3=2=1=0 C、[3,2,1,0] D、(3,2,1,0)

下面程序的 正确输出结果是( ).(规定用U表示空格) main(A)

{

float x=5.783,y= -10.2345;

printf (\}

当x为偶数或奇数时(0除外),其值都为0的表达式是:(C )

A、(x/2*2-x)==0 B、x%2==0 C、!x!=0 D、!(x%2)

下列运算符优先级最低的是(A ).

A、= B、+ C、! D、&&

设有如下程序段: int k=10; while(k==0) k--;

则下述说明中正确的是(A ).

A、循环体一次也不执行 B、循环体执行一次 C、死循环

D、循环体执行10次

从循环体内某一层跳出,继续执行循环外的语句是( C)。

A、continue语句

B、空语句 C、break语句 D、return语句

以下对一维整型数组a的正确说明是(D)。

A、int a(10);

B、int n; scanf(\C、int n=10,a[n];

D、#define SIZE 10 (换行) int a[SIZE];

以下定义语句中,错误的是(A)。

A、int n=5,a[n]; B、int a[]={1,2}; C、char s[10]=\D、char *a[3];

下面叙述中不正确的是( C).

A、可以对字符型数组进行整体输入和输出. B、不可以对浮点型数组进行整体输入和输出. C、可以对整型数组进行整体输入和输出. D、字符型数组可以存放字符串.

函数定义时的参数为形参,调用函数时所用的参数为实参,则下列描述正确的是(C ).

A、实参与形参是双向传递 B、形参可以是表达式 C、形参和实参可以同名

D、实参类型一定要在调用时指定

以下错误的描述是:函数调用可以(D)。

A、出现在执行语句中 B、做为一个函数的实参 C、出现在一个表达式中 D、做为一个函数的形参

以下不正确的说法是:C语言规定(C)。

A、实参可以是常量,变量或表达式 B、实参可以为任何类型

C、形参可以是常量,变量或表达式 D、形参应与其对应的实参类型一致

下列形式,不属于编译预处理命令的是( D).

A、#ifdef M B、#undef M C、#if (M>1) D、while (M>1)

下面判断正确的是(D)。

A、char c[4]=\等价于 char c[4]=d[4]=\B、char str[10]={\等价于char str[10];str[]={\C、char *a=\等价于 char *a;*a=\D、char *s=\等价于 char *s;s=\

若有以下结构体定义:

struct example

{ int x; int y; } v2;

则( D)是正确的引用或定义.

A、example.x=10; B、struct v2;v2.x=10; C、example v2;v2.x=10; D、struct example v2={10,3};

若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数 feof(fp)的值为(D)。

A、-1 B、1

C、一个非0值 D、0

判断 (O=F,1=T)

如果有一个字符串,其中第十个字符为'\\n',则此字符串的有效字符为9个。 F 格式字符%o用来以十六进制形式输出整数. F

已知a=3,b=4,c=5,则逻辑表达式!(a>b) && !c||1的值为1. T

已知x=2,y=2, 执行分支语句 if(x==y) y=1; else y=-1;后,y=-1. F continue语句对于while和do-while循环来说,意味着转去计算While表达式. T 在do-while循环中,根据情况可以省略while. F

对于字符数为n个的字符串,其占用的内存为n+1个字节空间. T puts 函数用来输出一个字符. F

引用数组元素时,下标可以是整型表达式或整型常量. T 函数调用结束后,静态局部变量所占用的空间被释放. F

在一个函数中定义的静态局部变量可以被另一个函数调用. F

当全局变量与局部变量同名时,在局部变量的作用域范围之内,全局变量起作用. F 计算机编译系统对宏定义在编译时进行语法检查. F

若定义 int array[5] , *p; 则赋值语句 p=array;是正确的. T 共同体变量所占的内存长度等于最长的成员的长度。 T

C语言中,打开一个文件就意味着产生了一个文件. F

1、若a和b类型相同,在计算了赋值表达式a=b后,b中的值将放入a中,而b中的值不变 1 2、char c[6]=\表示输出的字段的宽度,如果被输出的数据的位数大于3,按实际位数输出. 1 3、条件表达式x?'a':'b'中,若x=0时,表达式的值为'a'. 0 4、在逻辑运算符中的运算级别由高向低依次为 &&->||->! 0

5、do-while循环由do开始,while结束,循环体可能一次也不做。 0 6、continue语句用于终止循环体的本次执行. 1 7、若有定义和语句:

int a[3][3]={{3,5},{8,9},{12,35}},i,sum=0; for(i=0;i<3;i++) sum+=a[i][2-i];则sum=21. 1 8、int a[3][4]={{1},{5},{9}}; 它的作用是将数组各行第一列的元素赋初值,其余元素值

6、语句if(a>b) printf(\else printf(\可以用条件表达式a>b?a:b取代.F

7、已知a=4,b=2,c=3,d=5,表达式a>b?a:c

8、for循环的三个表达式都可以省略.T

9、continue语句对于while和do-while循环来说,意味着转去计算While表达式.T

10、for语句的循环体至少执行一次.F

11、语句 char ch[12]={\与语句 char ch[ ]=\具有不同的赋初值功能.T

12、定义char s[9];gets(s);若输入的字符串是Turbo c↙(↙代表按回车键操作) 则输入给数组s中的字符个数是7.T

13、对静态数组的初始化是在编译阶段完成的. T

14、C语言中,通过函数调用只能获得一个返回值.F

15、字符处理函数strcpy(str1,str2)的功能是把字符串1接到字符串2的后面.F

16、函数的返回值可以通过函数中的return语句获得。T

17、被包含文件是在编译时先单独生成目标文件,然后连接到可执行文件中去.F

18、char *p=\的含义是定义字符型指针变量p,p的值是字符串\。F

19、对于不同类型的数据,若想合成一个有机的整体,可以引用结构体进行定义。T

20、用fopen(\打开的文件\可以进行修改。T 若有定义和语句:

int a[3][3]={{3,5},{8,9},{12,35}},i,sum=0; for(i=0;i<3;i++) sum+=a[i][2-i];则sum=21. 1

二维数组在内存中存贮时,是按行的顺序进行存储的。 1

每次调用函数时,都要对静态局部变量重新进行初始化. 0

在定义宏时,在宏名与带参数的括弧之间不应加空格.

1

C语言中,在打开文件时,必须说明文件的使用方式,\用于打开一个不存在的文件. 0

设x的值为15,n的值为2,则表达式x%=(n+=3)运算后x的值是___0__. 已知a=-13,b=6, a%b的十进制数值为___-1__. 已知a=12,写出表达式 0

已知 i=5, 写出语句 a=(i>5)?0:1; 执行后整型变量 a 的值是__1___.

C语言中,数组名是一个不可变的___地址__常量,不能对它进行加减和赋值运算. C语言中一个函数由函数首部和__函数体___两部分组成.

设有以下共用体类型说明和变量定义,则变量c在内存所占字节数是 __20___。 union stud { short int num; char name[10]; float score[5]; double ave; } c; 在C语言中,关闭文件即是文件指针不再指向该__文件___. C语言中,二维数组在内存中的存放方式为按__行___优先存放.

函数调用时的实参和形参之间的数据是单向的__值___传递.

调用 fopen 函数打开一文本文件,在\使用方式\这一项中, 为输入而打开需填入___r__. 结构体是不同数据类型的数据集合,作为数据类型, 必须先说明结构体__类型___,再说明结构体变量.

1、已知 float i=5.6;int a;写出语句 a=(int)i; 执行后变量 i 的值是__5.6___. 2、设有int x=11,则表达式(x++ * 1/3)的值是_3____。 3、若int x=6;则x+=x-=x*x表达式最后x的值是_-60____. 4、设x=2&&2||5>1,x的值 为__1___.

5、连接字符串的函数是_strcat____,只写函数名即可. 6、函数不可以进行嵌套定义,但可以进行嵌套_调用____.

7、设有以下结构类型说明和变量定义,则变量b在内存所占字节数是 __21___。

struct stud { short int age; char num[3]; float s[2]; double ave; } b,*p; 8、若有fp=fopen(\打开文件语句,这个文件的数据是以_ASCII码____的形式存放在内存中,该文件的使用方式为读/__文本___。 1. int x; x=-3+4%-5*3, 则x的值为_____.9【3】

2. 下列语句输出的结果是_____,unsigned int b=65535;printf(\-1【3】 3. x=5,y=8时,c语言表达式5-2>=x-1<=y-2的值是_____.1【5】

4. 设x和y均为int型变量,则以下for循环中的scanf语句最多可执行的次数是_____.3【6】 for (x=0,y=0;y!=123&&x<3;x++) scanf (\

5. 连接字符串的函数是_____,只写函数名即可.strcat【7】

6. 从函数的形式上看,函数分为无参函数和_____两种类型. 有参函数【8】

7. 定义int *p,a[5];将数组a的首地址赋给指针变量p的语句是_____.p=a;p=&a[0];【9】 8. 设有以下结构类型说明和变量定义,则变量a在内存所占字节数是 _____。34 struct stud { char name[10]; float s[4]; double ave; } a,*p; 【10】

填空题

若有定义:int a=10,b=9,c=8;接着顺序执行下列语句后,变量c中的值是 _____ . c=(a-=(b-5)); c=(a)+(b=3); 9

下列语句输出的结果是_____,int a=-1;printf(\在vc环境下) ffffffff

设a=3,b=4,c=4,则表达式a+b>c&&b==c&&a||b+c&&b==c的值为_____. 1

以下程序段要求从键盘输入字符,当输入字母为'Y' 时,执行循环体,则下划线处应填写_____. ch=getchar(); while(ch ____ 'Y') ch=getchar(); ==

static int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};其中a[1][2]的值为_____. 6

静态变量和外部变量的初始化是在_____阶段完成的,而自动变量的赋初值是 在_____时进行的. (编译),(运行/函数调用/调用)1752

将函数func的入口地址赋给指针变量p的语句是_____.p=func;

设有以下结构类型说明和变量定义,则变量b在内存所占字节数是 _____。 21

struct stud { short int age; char num[3]; float s[2]; double ave; } b,*p; 填空

若有定义:char c='\\010'; 则变量C中包含的字符个数为_____. 1

getchar()函数只能接收一个_____. 字符

执行下列语句后, b的十进制值是_____. 1 int x=240,y=15,b; char z='A';

b=(( x && y ) && ( z < 'a' ));

设x和y均为int型变量,则以下for循环中的scanf语句最多可执行的次数是_____. 3 for (x=0,y=0;y!=123&&x<3;x++) scanf (\

C语言中,数组名是一个不可变的_____常量,不能对它进行加减和赋值运算. 地址

函数调用语句func((e1,e2),(e3,e4,e5))中含有_____个实参. 2

定义int *p,a[5];将数组a的首地址赋给指针变量p的语句是_____. p=a; p=&a[0];

结构体是不同数据类型的数据集合,作为数据类型, 必须先说明结构体_____,再说明结构体变量. 类型 填空

设有int x=11,则表达式(x++ * 1/3)的值是_____。3

执行下列语句的结果是_____.4,4 a=3;

printf(\printf(\

已知 a=10,b=15,c=1,d=2,e=10,则表达式a++&&e++&&c++的值为_____. 1

程序段int k=10; while(k=0) k=k-1;循环体语句执行_____次. 0

C语言中,数组元素的下标下限为_____. 0

函数的_____调用是一个函数直接或间接地调用它自身. 递归

执行下列语句后,*(p+1)的值是_____. b char s[3]=\

设有以下共用体类型说明和变量定义,则变量c在内存所占字节数是 _____。 20 三、填空题 1、设a、b、c为整型数, 且a=2、b=3、c=4, 则执行完以下语句: a*=16+(b++)-(++c); 后,a的值是 _____. 28

2、若所用变量都已正确定义,请填写以下程序段的输出结果_____. OK for(i=1;i<=5;i++); printf(\

3、c语言表达式!(4>=6)&&(3<=7)的值是_____. 1

4、设x和y均为int型变量,则以下for循环中的scanf语句最多可执行的次数是_____. 3 for (x=0,y=0;y!=123&&x<3;x++)

scanf (\

5、按内存排列顺序, 数组char a[2]中的所有元素是a[0]和_____. a[1] 6、函数不可以进行嵌套定义,但可以进行嵌套_____. 调用

7、将数组a的首地址赋给指针变量p的语句是_____. p=a; 或 p=&a[0];

8、在内存所占字节数是 _____。 struct stud { char num[6]; float s[4]; double ave; } a,*p; 30 三、填空题

1、若有定义:int a=10,b=9,c=8;接着顺序执行下列语句后,变量c中的值是 _____ . c=(a-=(b-5)); c=(a)+(b=3); 9

2、getchar()函数只能接收一个_____. 字符

3、当a=1,b=2,c=3时,执行以下程序段后b=_____. if (a>c) b=a; a=c; c=b; 2

4、abcde<回车>,则以下while循环体将执行 _____ 次. while((ch=getchar())=='e') printf(\

5、字符串的结束标志是_____. '\\0' 0

6、如果函数不要求返回值,可用_____来定义函数为空类型. void

7、将函数funl 的入口地址赋给指针变量p的语句是_____. p=funl; 小写的L,不是数字一 8、设有以下共用体类型说明和变量定义,则变量d在内存所占字节数是 _____。 union stud { short int num; char name[8];float score[3]; double ave; } d,stu[3]; 12

填空

1、设x的值为15,n的值为2,则表达式x%=(n+=3)运算后x的值是_____. 0

2、以下程序的输出结果为_____, #include \a=010,j=10;printf(\

3、设a,b,c,t为整型变量,初值为a=3,b=4,c=5,执行完语句t=!(a+b)+c-1&&b+c/2 后,t的值是_____. 1

4、若输入字符串:abcde<回车>,则以下while循环体将执行 _____次. 0 while((ch=getchar())=='e') printf(\

5、若有以下数组a,数组元素:a[0]~a[9],其值为 9 4 12 8 2 10 7 5 1 3 该数组的元素中,数值最小的元素的下标值是_____. 8

6、函数不可以进行嵌套定义,但可以进行嵌套_____. 调用

7、在c程序中,只能给指针变量赋NULL值和_____值. 地址

8、设有以下共用体类型说明和变量定义,则变量a在内存所占字节数是 _____。 union stud { char num[6]; float s[4]; double ave; } a,*p; 16

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

Top