C语言试题及答案

更新时间:2024-05-03 04:51:01 阅读量: 综合文库 文档下载

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

下面四个选项中,均是不合法的用户标识符的选项是()。 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、double B、float C、int D、不确定 设:

long w=65535,t=7654321;

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

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

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

C、非零的数 D、1

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

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

- 1 -

B、x%=(k-k%5) C、x%=k-k%5 D、x%=(k%=5)

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

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

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

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

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

以下正确的说法是( ).

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

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

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

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

B、返回一个不确定的值 C、返回若干个系统默认值 D、能返回一个用户所希望的值

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

- 2 -

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

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

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

{char str[ ]=\

A、68

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

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

DACAABCBABAAADC

在C程序中,%作为运算符时,是只能用于整数运算。

在C语言中,各种类型的整型数据在内存中都占2个字节。

C语言程序中输入一个中间带有空格的字符串时,只能用gets函数. 整型变量在全部范围内可以用字符格式输出.

已知a=1,b=2,c=3,d=4,则条件表达式a>b?a:(c>d?c:d)的值为4. 逻辑表达式4>2&&1||5<3-!0的值为1. 下面程序段的输出结果为A。 int i=20; switch(i/10) {

- 3 -

case 2:printf(\ case 1:printf(\}

对于for(表达式1;表达式2;表达式3)语句来说,continue语句意味着转去执行表达式2.

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

循环结构中的continue语句是使整个循环终止执行

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

定义一维数组的形式为:类型说明 数组名[表达式],其中表达式必须是整型常量. 下列程序段是否正确: int a[10]; .... a++;

字符处理函数strcpy(str1,str2)的功能是把字符串1接到字符串2的后面. 静态局部变量是在编译时被初始化的,故它只被赋初值一次. 没有初始化的数值型静态局部变量的初值是不确定的值.

如果字符串与宏名相同,则不管其是否在双撇号内,都要进行宏替换.

有如下说明:int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则数值为9的表达式是 *(p+8).

共用体变量中起作用的成员是最后一次存放的成员.

在打开文件时,必须说明文件的使用方式,\表示以读/写方式打开一个二进制文件.

TFTFTTFFTFTFFFTFFTTF

设有int x=11,则表达式(x++ * 1/3)的值是_____。 执行下列语句的结果是_____. a=3;

printf(\printf(\

已知 a=10,b=15,c=1,d=2,e=10,则表达式a++&&e++&&c++的值为_____. 程序段int k=10; while(k=0) k=k-1;循环体语句执行_____次. C语言中,数组元素的下标下限为_____.

在调用一个函数的过程中,直接或间接地调用该函数本身,称为函数的_____调用。

- 4 -

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

设有以下共用体类型说明和变量定义,则变量c在内存所占字节数是 _____。

union stud { short int num; char name[10]; float score[5]; double ave; } c; 3 4,4 1 0 0 递归 b 20

下述正确的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的值是()。 A、0.000000 B、2.750000 C、3.500000 D、2.500000

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

int i;

char c1,c2;

scanf(\}

A、123AUB[CR] B、123UAUB[CR]

- 5 -

C、123AB[CR] D、123[CR]AB[CR]

下列程序段的输出结果为()。 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的值为()。 A、1 B、3 C、2

D、不一定

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

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

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

针对for循环语句,for(表达式1;表达式2;表达式3),下列说法正确的是( ). A、break语句可以一次性跳出多层嵌套循环 B、break语句只能跳出最内层循环

C、continue语句可以一次性跳出多层嵌套循环 D、continue语句可以跳出最内层循环 以下不正确的定义语句是()。

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、函数的类型决定返回值的类型

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

- 6 -

D、如果形参与实参的类型不一致,以实参类型为准 C语言规定,函数返回值的类型是由()。 A、在定义该函数时所指定的函数类型所决定 B、return语句中的表达式类型所决定 C、调用该函数时系统临时决定

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

函数fun用于将一字符串按相反次序显示,则横线上的表达式为( ). 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、字符序列 B、函数名 C、单精度数 D、双精度数

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

D、p1=&m;p2=&n;*p1=*p2; 下列程序的运行结果是:( ). void fun(int *a, int *b) { int *k;

k=a;a=b;b=k; }

main( )

{ int a=3,b=6,*x=&a, *y=&b;

- 7 -

fun(x, y);

printf(\}

A、6 3 B、3 6 C、0 0 D、编译出错

C语言结构体类型变量在程序执行期间()。 A、没有成员驻留在内存中 B、所有成员一直驻留在内存中 C、只有一个成员驻留在内存中 D、部分成员驻留在内存中 参考答案:CDCBCCBCAADAABB 表达式 (j=3, j++) 的值是4.

若 a=3,b=2,c=1 则关系表达式(a>b)==c 的值为\真\。 C语言的输入功能是由系统提供的输入函数实现的.

char c[6]=\表示输出的字段的宽度为3位,如果被输出的数据的位数大于3,只输出3位数.

条件表达式x?'a':'b'中,若x=0时,表达式的值为'a'. 设x=1,y=2,z=3,则逻辑表达式x-y>z&&y!=z的值为0. 已知a=3,b=4,c=5.则逻辑表达式a+b>c && b==c值为0. 若有说明int c;则while(c=getchar());没有语法错误。 do-while循环由do开始,while结束,循环体可能一次也不做。 for循环语句只能用于循环次数确定的情况下.

若有定义 int a[10];则 for (i=0;i<=10;i++) a[i]=i;编译时无语法错误. 定义 int x[5],n;则x=x+n;或x++;都是正确的.

二维数组在内存中存贮时,是按列的顺序连续存贮各元素的值. 变量根据其作用域的范围可以分作局部变量和全局变量. 通过return语句,函数可以带回一个或一个以上的返回值。 函数的返回值可以通过函数中的return语句获得。

若有宏定义:#define S(a,b) t=a;a=b;b=t由于变量t没定义, 所以此宏定义是错误的。

定义 int a[ ]={1,2,3,4},y,*p=&a[1];,则执行y=(*--p)++后,y的值是2.

一个共用体变量中可以同时存放其所有成员.

- 8 -

用fopen(\打开的文件\可以进行修改。 参考答案:FTTFFTTTFFTFFTFTFFFT

若有定义:char c='\\010'; 则变量C中包含的字符个数为_____. getchar()函数只能接收一个_____. 执行下列语句后, b的十进制值是_____. int x=240,y=15,b; char z='A';

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

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

C语言中,数组名是一个不可变的_____常量,不能对它进行加减和赋值运算. 函数调用语句func((e1,e2),(e3,e4,e5))中含有_____个实参. 定义int *p,a[5];将数组a的首地址赋给指针变量p的语句是_____.

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

参考答案:1 字符 1 3 指针(地址) 2 p=a p=&a[0] p=a; p=&a[0]; 类型

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

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

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

- 9 -

D、它们的运算对象可以是char型变量、int型变量和float型变量 执行下列程序后,其输出结果是()。 main() {int a=9; a+=a-=a+a;

printf(\}

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

打印语句printf(\在屏幕上正确的输出形式是( ). A、sTUDENDS B、TUDENTS C、STUDENT D、sTUDENTS

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

{ int a,b,s;

scanf(\ s=a;

if(a

printf(\} A、9 B、13 C、16 D、15

若给定条件表达式(m)?(a++):(a--),则其中表达式m()。 A、和(m==0)等价 B、和(m!=0)等价 C、和(m==1)等价 D、和(m!=1)等价

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

- 10 -

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

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

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

B、do-while 循环中,根据情况可以省略 while

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

D、do-while 循环由do开始,用while结束,在 while(表达式)后面不能写分号 int a[10];合法的数组元素的最小下标值为()。 A、10 B、9 C、1 D、0

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

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、strcat(a2,a1); B、strcat(a1,a2); C、strcpy(a1,a2); D、strcpy(a2,a1); 若有 char s1[]=\则下列语句中能够实现当字符串s1大于字符串s2时,输出s2的语句是()。 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、22 B、32 C、98

- 11 -

D、18

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

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

定义结构体的关键字是( )。 A、struct B、typedef C、enum D、union

参考答案:DDCCBBCDCACADAA

若 a=3,b=2,c=1 则关系表达式(a>b)==c 的值为\真\。 a=(b=4)+(c=6) 是一个合法的赋值表达式。

C语言程序中输入一个中间带有空格的字符串时,可以用scanf函数. 格式字符%e以指数形式输出实数数字部分小数位数7位. 设g=1,h=2,k=3,则逻辑表达式k+g||!h&&k-h的值为0

求解表达式max=(a>b)?a:b的步骤是,先求解条件表达式(a>b),再根据它的值将a或b赋给max.

语句if(a>b) printf(\else printf(\可以用条件表达式a>b?a:b取代. break语句能够终止当前进行的多层循环. for循环的三个表达式都可以省略. for语句的循环体至少执行一次.

字符串\在内存中的存储长度是7. 定义 int x[5],n;则x=x+n;或x++;都是正确的.

若有定义 int a[10];则 for (i=0;i<=10;i++) a[i]=i;编译时无语法错误. 数组名作为函数调用时的实参,实际上传递给形参的是数组第一个元素的值.

当变量的存储类型定义缺省时,系统默认为变量的存储类型为auto类型,分配在静态区.

两个字符串中的字符个数相同时才能进行字符串大小的比较

- 12 -

如果被包含文件中有全局静态变量,它们在用#include命令的源文件中有效. 假设有int a[10], *p;则p=&a[0]与p=a等价

共用体变量中起作用的成员是最后一次存放的成员. 下面的定义和语句是合法的:

file *fp;fp=fopen(\参考答案:TTFFFTFFTFFFTFFFTTTF

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

下列语句输出的结果是_____,int a=-1;printf(\在vc环境下) 设a=3,b=4,c=4,则表达式a+b>c&&b==c&&a||b+c&&b==c的值为_____.

以下程序段要求从键盘输入字符,当输入字母为'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]的值为_____.

局部静态变量是在静态存储区分配存储单元的,在整个程序运行期间始终占_____的. 将函数func的入口地址赋给指针变量p的语句是_____.

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

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

参考答案:9 ffffffff 1 == 6 内存 p=func; p=func 21

下列四组选项中,均不是C语言关键字的选项是()。 A、while go pow B、define IF type C、include scanf case

- 13 -

D、getc char printf

字符串\所占内存字节的长度是:( ).

A、11 B、8 C、5 D、7

根据下面的程序,使a=123,c1='o',c2='k'哪一种是正确的键盘输入方法?( )。 (规定用字符串[CR]表示回车,U表示空格) main() {int a;

char c1,c2;

scanf(\}

执行下面程序段后,ch的值是( ). char ch='a';

ch=(ch>='A'&&ch<='Z')?(ch+32):ch; A、z B、Z C、a D、A

若给定条件表达式(m)?(a++):(a--),则其中表达式m()。 A、和(m==0)等价 B、和(m!=0)等价 C、和(m==1)等价 D、和(m!=1)等价

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

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

A、循环控制表达式的值为0

- 14 -

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

语句while(!E);中的表达式!E等价于()。 A、E==1 B、E!=0 C、E!=1 D、E==0

int a[10]; 给数组a的所有元素分别赋值为1、2、3、……的语句是()。 A、for(i=1;i<11;i++)a[i]=i; B、for(i=1;i<11;i++)a[0]=1; C、for(i=1;i<11;i++)a[i+1]=i; D、for(i=1;i<11;i++)a[i-1]=i;

int i,j,a[2][3];按照数组a的元素在内存的排列次序,希望将 1,2,3,4,5,6存入a数组中,以下语句无法实现的是()。 A、for(i=1;i<=6;i++)a[i][i]=i;

B、for(i=0;i<6;i++)a[i/3][i%3]=i+1;

C、for(i=0;i<2;i++)for(j=0;j<3;j++)a[i][j]=i*3+j+1; D、for(i=0;i<3;i++)for(j=0;j<2;j++)a[j][i]=j*3+i+1; 对于void类型函数,调用时不可作为()。 A、循环体里的语句 B、表达式

C、if语句的成分语句 D、自定义函数体中的语句

C语言规定,程序中各函数之间( ).

A、允许直接递归调用不允许间接递归调用

B、不允许直接递归调用也不允许间接递归调用 C、既允许直接递归调用也允许间接递归调用 D、不允许直接递归调用允许间接递归调用

在Turbo C 运行环境下,下列说法中正确的是( ).

A、双引号中字符串的字符,如果与宏名相同,就要替换. B、用宏定义不可以得到多个返回值.

C、双引号中字符串的字符,即使与宏名相同,也不替换. D、调用函数可以得到多个返回值. 若有以下定义和语句:

- 15 -

fclose(OUT); }

【参考代码】

int i,j;

float t,s=0;

for(i=3;i<=n;i=i+3) {t=1;

for(j=1;j<=i;j++) t=t*j;

s=s+t;} return(s);

/*------------------------------------------------------ 【程序改错】

--------------------------------------------------------

功能:用下面的和式求圆周率的近似值。直到最后一项的绝对值 小于等于0.0001。

π/4= 1- 1/3 + 1/5 - 1/7 ....

------------------------------------------------------*/ #include \

/**********ERROR**********/ #include \

void fun() {

int i=1;

/**********ERROR**********/ int s=0,t=1,p=1;

/**********ERROR**********/ while(fabs(t)<=1e-4) {

- 21 -

s=s+t; p=-p; i=i+2; t=p/i; }

/**********ERROR**********/ printf(\}

main() {

fun(); }

【参考答案】

#include \#include 【参考答案】

float s=0,t=1,p=1; float s=0,p=1,t=1; float p=1,s=0,t=1; float p=1,t=1,s=0; float t=1,p=1,s=0; float t=1,s=0,p=1; double s=0,t=1,p=1;

float s=0.0,t=1.0,p=1.0; double s=0.0,t=1.0,p=1.0; 【参考答案】

while(fabs(t)>1e-4) while(0.00010.0001) 【参考答案】

printf(\printf(\

/*------------------------------------------------------

- 22 -

【程序改错】

--------------------------------------------------------

功能:输入一行英文文本,将每一个单词的第一个字母变成大 写。

例如:输入\,输出为\。

------------------------------------------------------*/ #include \#include \#include \#include \

/**********ERROR**********/ fun(char p) {

int k=0;

/**********ERROR**********/ while(*p=='\\0') {

if(k==0&&*p!=' ') {

*p=toupper(*p); k=1; }

else if(*p!=' ') k=1; else k=0;

/**********ERROR**********/ *p+; } }

main()

- 23 -

{

char str[81];

printf(\/**********ERROR**********/ get(str);

printf(\ puts(str); fun(str);

printf(\ puts(str); }

【参考答案】 fun(char *p) fun(char p[])

void fun(char p[]) void fun(char *p) 【参考答案】 while(*p!='\\0') while(*p) 【参考答案】 p++; p=1+p; ++p; p=p+1; p+=1;

【参考答案】 gets(str);

/*------------------------------------------------------- 【程序填空】

---------------------------------------------------------

题目:下面程序输出所有能被3整除,并能被5整除余3 两位数,请填空。

- 24 -

-------------------------------------------------------*/

#include \main()

{ int i;

/***********FILL***********/ for(i=10;_____;i++) {

/***********FILL***********/ if(i%3==0&&_____) printf(\ } }

【参考答案】 i<100 i<=99

【参考答案】 i%5==3 (i%5==3)

/*------------------------------------------------------- 【程序填空】

---------------------------------------------------------

功能:利用全局变量计算长方体的体积及三个面的面积。

-------------------------------------------------------*/ #include \int s1,s2,s3;

int vs(int a,int b,int c) {

int v;

/***********FILL***********/ v=_____; s1=a*b;

/***********FILL***********/

- 25 -

s2=_____; s3=a*c; return v; }

main() {

int v,l,w,h;

printf(\: \ /***********FILL***********/ scanf(\ /***********FILL***********/ v=_____;

printf(\}

【参考答案】 b*a*c a*b*c c*b*a c*a*b a*c*b b*c*a

【参考答案】 c*b b*c

【参考答案】 &l

【参考答案】 vs(l,w,h) vs(l,w,h)

- 26 -

下列变量说明语句中,正确的是()。 A、char a;b;c; B、char:a b c; C、int x;z; D、int x,z;

设以下变量均为int类型,则值不等于7的表达式是()。 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) 设:

long w=65535,t=7654321;

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

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

t=++x||++y&&++z; A、0 B、1 C、2

D、不定值

如果int a=2,b=3,c=0,下列描述正确的是( )。 A、a&&b>c的结果为假

B、!a!=(b!=c)表达式的值为1 C、a||(b=c)执行后b的值为0

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

- 27 -

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

{ int min=0,a; do{

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

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

则下述说明中正确的是( ). A、循环体一次也不执行 B、循环体执行一次 C、死循环

D、循环体执行10次

char str[10]=\数组元素个数为()。 A、6 B、9 C、5 D、10

函数调用:strcat(strcpy(str1,str2),str3)的功能是( )。 A、将串str1复制到串str2中后再连接到串str3之后

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

D、将串str2复制到串str1中后再将串str3连接到串str1之后 C语言程序中必须有的函数是()。 A、#include \B、main C、printf D、scanf

程序运行结束后,屏幕上输出值为( ).

- 28 -

static int x=10; f( )

{ x++; } main( ) { int x=3; f( ); x- -;

printf(\ }

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

file1.c中有命令,#include ,若file2.c中有全局静态变量a,则( ). A、a在file1.c中应用extern说明.

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

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

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

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

{char str[ ]=\

A、68

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

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

- 29 -

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

参考答案:DACBBDADDBBBCAA

在C语言中,各种类型的整型数据在内存中都占2个字节。 表达式 (j=3, j++) 的值是4.

格式字符%e以指数形式输出实数数字部分小数位数7位.

char c[6]=\表示输出的字段的宽度为3位,如果被输出的数据的位数大于3,只输出3位数.

设d=1,e=2,f=3,则逻辑表达式!(d+e)+f&&e+f*2的值为0.

已知a=1,b=2,c=3,d=4,则条件表达式a>b?a:(c>d?c:d)的值为4. 已知a=3,b=4,c=5.则逻辑表达式a+b>c && b==c值为0.

do-while循环由do开始,while结束,循环体可能一次也不做。

对于for(表达式1;表达式2;表达式3)语句来说,continue语句意味着转去执行表达式2.

在do-while循环中,任何情况下都不能省略while. 对静态变量的初始化不是在编译阶段完成的. 定义 int x[5],n;则x=x+n;或x++;都是正确的.

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

数组名作为函数调用时的实参,实际上传递给形参的是数组第一个元素的值. 变量根据其作用域的范围可以分作局部变量和全局变量.

当变量的存储类型定义缺省时,系统默认为变量的存储类型为auto类型,分配在静态区.

若有宏定义:#define S(a,b) t=a;a=b;b=t由于变量t没定义,所以此宏定义是错误的。 设有如下定义:int *p; *p=100;则 printf(\的输出结果是100. 使几个不同的变量共占同一段内存的结构,称为\结构体\类型.

在打开文件时,必须说明文件的使用方式,\表示以读/写方式打开一个二进制文件.

参考答案:FFFFFTTFFTFFFFTFFFFF

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

当a=1,b=2,c=3时,执行以下程序段后b=_____.

- 30 -

float s[4]; double ave; } a,*p;

参考答案:28 OK 1 3 a[1] 调用 【参考答案】(p=a p=&a[0] p=a; p=&a[0];) 30

字符常量'\\101'是()。 A、字符A B、字符a C、字符e

D、非法的常量

下列程序段的输出结果为()。 float k=0.8567; printf(\A、85.6% B、85.6%% C、85.7% D、.857

下面的scanf函数输入数据,使得

a=10,b=15,s1='S',s2='s',x1=1.5,x2=-3.75,x3=67.8, 正确的键盘输入方法是( ). (用\表示回车,U表示空格) 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]

- 36 -

C、10UUU15USUsU1.5U-3.75U+1.5U67.8[CR] D、10UUU15Ss1.5U-3.75U+1.5,67.8[CR] C语言的if语句中,用作判断的表达式为( )。 A、任意表达式 B、算术表达式 C、逻辑表达式 D、关系表达式

以下程序的输出结果是:( ) main() {int m=5;

if(m++>5) printf(\ else printf(\ } A、6 B、5 C、7 D、4

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

A、3次

B、循环次数不定 C、4次

D、是无限循环

以下程序的执行结果是( )。 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,

以下不能正确进行字符串赋初值的语句是()。 A、char str[5]=\

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

- 37 -

()。 C、char *str=\D、char str[]=\

函数调用:strcat(strcpy(str1,str2),str3)的功能是( )。 A、将串str1复制到串str2中后再连接到串str3之后

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

D、将串str2复制到串str1中后再将串str3连接到串str1之后 以下函数返回值的类型是( )。 int fff(float x) {

x=x+5; return x; }

A、void 类型

B、与参数x的类型相同 C、int类型 D、无法确定 设有如下函数

double fac(int x) {

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

则函数返回值的类型为( ). A、int型 B、float型 C、无法确定 D、double型

设有宏定义#define PI 3.14 和#define S(r) PI*r*r,A、6.28 B、12.56 C、3.14 D、9.42

下列关于指针定义的描述,错误的是()。

- 38 -

则S(2)的值为( ). A、指针是一种变量,该变量用来存放某个变量的值

B、指针是一种变量,该变量用来存放某个变量的地址值 C、指针变量的类型与它所指向的变量类型一致 D、指针变量的命名规则与标识符相同 以下程序的输出结果是( ). main()

{char str[ ]=\

A、68

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

对结构体类型的变量的成员的访问,无论成员是何种数据类型都可使用 的运算符是()。 A、& B、. C、* D、->

参考答案:ACAAACBADCDBAAB

在C语言中,各种类型的整型数据在内存中都占2个字节。 若有 int i=10,j=2;则执行完i*=j+8;后ⅰ的值为28。

格式字符%g选用%e或%f格式中输出宽度较长的一种格式输出实数. C语言程序中输入一个中间带有空格的字符串时,可以用scanf函数. 设d=1,e=2,f=3,则逻辑表达式!(d+e)+f&&e+f*2的值为0. 已知a=4,b=2,c=3,d=5,表达式a>b?a:c

语句if(a>b) printf(\可以用语句 printf(\取代.

在do-while循环中,任何情况下都不能省略while. break语句能够终止当前进行的多层循环.

continue语句对于while和do-while循环来说,意味着转去计算While表达式. 对静态变量的初始化不是在编译阶段完成的. gets 函数是用来输入一个字符的函数.

设有数组定义: char array[ ]=\则数组 array所占的内存空间为5字节. 当全局变量与局部变量同名时,在局部变量的作用域范围之内,局部变量起作用.

- 39 -

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

数组名作为函数调用时的实参,实际上传递给形参的是数组第一个元素的值.

被包含文件与其所在的文件(即用#include命令的源文件),在预编译后,成为同一个文件.

如果需要向函数内传递多个值,用数组和用指针效果是一样的. 两个类型相同的结构体变量,可以互相赋值.

C语言中,在打开文件时,必须说明文件的使用方式,\只能用于文件的写. 参考答案:FFFFFTTTFTFFFTFFTTTF

int x; x=-3+4%-5*3, 则x的值为_____. 下列语句输出的结果是_____.

unsigned int b=65535;printf(\

x=5,y=8时,c语言表达式5-2>=x-1<=y-2的值是_____.

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

连接字符串的函数是_____,只写函数名即可.

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

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

设有以下结构类型说明和变量定义,则变量a在内存所占字节数是 _____。 struct stud { char name[10]; float s[4]; double ave; } a,*p; 参考答案:9 -1 1 3 strcat 有参函数 【参考答案】p=a p=&a[0] p=a; p=&a[0]; 34

若变量均已正确定义并赋值,以下合法的C语言赋值语句是( )。 A、x+n=I; B、x==5; C、x=n/2.5; D、5=x=4+1;

下述错误的C语言常量是:( ). A、0xf

- 40 -

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

Top