admin 管理员组

文章数量: 1184232


2024年4月26日发(作者:laravel框架手册)

C语言练习题和答案(新)

第1

1.执行以下程序的输出结果是__8921__。

main()

{ int n1,n2=1298;

while(n2!=0) {

n1=n2%10;n2=n2/10;printf("%d",n1);}

}

2.以下程序的运行结果是__end____。

main()

{

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

if(a>b) if(a>c)printf("%dn",a);

else printf("%dn",b);

printf("endn");}

3.如果调用函数fopen() 不成功,则函数的返回值为__0__。

4.以下程序段的执行结果是_ffff__。

int a=-1;

printf("%x",a);

5.表示字符串s1等于字符串s2的逻辑表达式为

_strcmp(s1,s2)==0_。

6.在C语言中,&作为双目运算符时表示的是按位与运算符,而作

为单目运算符时表示的是__取地址__运算符。

7.C语言中的合法标识符只能有三种字符组成,它们是字母,_数

字___和下划线。

8.C语言中从作用域的角度来看,变量可以分成__全局_变量和局

部变量。

9.定义struct{

int n;

char y[5];

}tab[2]={{1,"ab"},{2,"cd"}},

*p=tab;

则表达式:printf("%sn",p->y);的结果为__ab___。

10.以下程序段的执行结果是____6,8,6,7_______。

main()

{ int a1,a2,b1,b2;

a1=5;a2=7; b1=++a1;b2=a2++;

printf("%d,%d,%d,%dn",a1,a2,b1,b2);

}

3.语句for(i=-2;i<5;i++) 的循环体共执行__7___次。

4.C语言提供专用于输入一个字符串(包括空格)的函数:

___gets()______。

5.局部变量从存储类别可分为auto、register、__static__三种。

1.在TC

2.0中快捷键Ctrl+F9的功能是编译、连接和_运行______。

2.C语言函数库中字符串复制函数的函数名是strcpy___________。

3.有定义static char s[ ]="abctdefn";则数组空间的字节数为

___9_____。

4.写出a不能被b整除的C语言表达式是__a%b!=0___________。

6.执行以下程序的输出结果是_4321______。

main()

{ int n1,n2=1234;

while(n2!=0) {

n1=n2%10;n2=n2/10;printf("%d",n1);}

}

7.已知int x=10,y=20,z=30;则以下程序段的执行结果是

__20,30,30_____。

if (x>y) z=x;x=y;y=z;

printf("%d,%d,%dn",x,y,z);

8.在C文件中,数据存放的两种形式是文本形式和二进制形式。

9.有函数调用语句sub(a,1,fun(x,y),b+c,(m+n,c*h));则该函数调

用语句中的实参个数为____5______。

1.以下程序运行结果是___6_________。

main()

{

int m=5;

if(m++>5) printf("%d",++m);

else printf("%d",m--);}

3.以下程序的运行结果是___20_________。

main()

{

int a,b,c,d,x;

a=c=0;b=1;d=20;

if(a) d=d-10;

else if(!b)

if(!c)x=15;

else x=25;

printf("d=%dn",d);}

4.在C语言中对文件读写之前应该用_fopen_____函数打开文件。

5.写出将字符串s1拷贝到字符串s2后,再连接到字符串s3之后

的语句为__strcat(s3,strcpy(s2,s1));________________。

6.在C程序的表达式中,判断表达式成立的条件是___1_____表示

逻辑"真"值,0表示逻辑"假"值。

7.有定义static char s[ ]="China";则数组所占空间为

____6_________个字节。

8.C语言中的合法标识符只能有三种字符组成,它们是_字母_____、

数字和下划线。

9.表达式a=(b=3)*(c=9)的值是__27_____ 。

10.若定义了如下的结构体类型变量x,则x所占用的内存字节数

为___11_____。

struct data1

{ int i;

char ch;

double f;

}x;

1.设i,j,k均为int型变量,则执行完以下for语句后,k的值是

___10_______。

for(i=0,j=10;i<=j;i++,j--)

k=i+j;

2.有定义

#define M(x) x*x/2

int a=2,b=3;

则M(a+b)/M(a) 的值为__8_______。

4.以下函数的功能是:求两整数的差,并返回。

int sub ( int a,int b)

{

__return___ a-b;

}

5.以下程序段的执行结果是___-4____。

main()

{

int a=2;a+=a-=a*a;

printf("a=%dn",a);

}

6.将变量a、b中的大数赋给变量c 的表达式为

_c=a>b?a:b__________。

7.C语言用___分号_________表示每条语句的结束。

8.若有int a[3]={10,12,30};则*(a+2)=___30________。

data1

{ char name[6];

char sex;

int age;

}x;

则:printf("%d ",sizeof(x))的结果是:__6_______。

10.若for循环是当型循环,则do--while 循环是___直到型循环

_________ 。

2.以下函数中,若m=10,则函数共输出___4____行。

void sub(int m,int s[ ] )

{

int n;

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

{ printf("%2d",s[n]);

if (!(n%3)) printf("n"); }

}

3.在使用标准数学函数时,必须在程序开头部分使用#include

___________命令。

(s1,s2 ) 函数需要两个参数s1、s2,它们的类型可以是

字符串或字符型指针。

5.计算表达式a=20/2%3 后,a 的值为__1______。

6.设有类型说明如下:

int a[10]={1,2,3,4,5,6},*p=a;

则*(p+3)=______4___。

7.构成C语言程序的基本单位是____函数____________。

8.有定义int a[][4]={{10,12},{1,30,3},{2}};则数组a中有

____12______个元素。

9.有定义long k=255793L;若使输出结果是255793的语句为

____printf(“%ld”,k);____________。

10.定义标识符PI为符号常量代表一个“3.14”这个字符串

__#define PI 3.14____。

2.用以下语句调用库函数malloc,使字符指针st指向具有11个

字节的动态存储空间,请填空。

st=(char*)malloc(11); _______________________。

3.设char ch='a’;则ch对应的内存单元中存储的是常量'a'的

__ASCII______码。

7.若int x=3,则表达式x+=x-=x*=5运算后,x的值为___0____。

8.C语言中,头文件的扩展名是_____.h__________。

9.C语言中用______’0’__________表示字符串结束的标志。

x[2][3],* p; p=&x[0][0]; 用_*(p+4)_________ 表示x[1][1]。

1.执行以下程序的输出结果是_______。

main()

{ int n1,n2=7654;

while(n2!=0) {

n1=n2%10;n2=n2/10;printf("%d",n1);}

}

3.定义标识符fp 为文件型指针变量的语句为_FILE *fp;__________。

4.指针变量所代表存储单元是用来存放_变量的地址_________的。

5.以下程序段的执行结果是_fffe______。

int a=-2;

printf("%x",a);

6.若有以下定义:

double w[10];

则w数组元素下标的上限为_9________。

7.在TC 2.0中Ctrl+F9的功能是编译、_连接______和运行。

8.在C程序中有三种逻辑运算符,它们是:!、&&和____||_____。

9.设int i=3.56;则i对应的存储单元中存放的数值为__3_____。

10.跳过循环体中其后尚未执行的语句,而开始执行下一次是否循

环的判定的语句是_____continue;________。

1.局部变量从存储类别可分为auto、register、_static__________

三种。

2.有定义#define M(x) x*x

int a=3,b=2;

则M(a+b)/M(a+b) 的值为_17______________。

{a,b=3,c,d=6,e} k;

k=e;

k的值为___7_____ 。

5.在C语言中,16位微型机int型数据所占用的内存为___2___个

字节。

6.表示3

1.设有类型说明如下:

int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;

若数组所占内存单元的起始地址为2000,则p+5=_2010_______。

2.C语言程序的注释是以___*_________开头的。

3.将十进制整数123,化为二进制数为___1111011______________。

4.若int x ;表示x为奇数的表达式为____x%2==1_____________。

5.以下程序运行结果是___8___________。

main()

{

int m=6;

if(m++>5) printf("%d",++m);

else printf("%d",m--);}

6.若使用库函数sin(x),则必须使用______#include ____________

预处理命令。

7.在C语言中对文件读写使用结束之后应该用__fclose______函数

关闭文件。

第2

1、局部变量的存储类型可以是_abd___。

er

2、下列属于双目运算符的是_abd___。

A.+=

B.>

C.,

D.>>

E.?:

3、下列属于程序控制语句的是_bcde___。

a;

(a>b)t=a;

(i=0;i

(x>0)x--;

n;

4、下列关于"switch(表达式)"语句说法正确的是abcd____。

语句是多分支语句

后的(表达式)允许是任何类型

语句中允许有一个default子句,也可以没有

语句中的每个case子句的常量表达式的值必须互不相同

语句中的每个case子句必须有一个break语句

5、下列语句定义数组正确的是bd____。

a(10);

a[2+9];

arr[0 to 3][0 to 4];

arr[3][4];

[3,4];

6、下列合法标识符是_cd___。

D.a3_b3

7、5.下列格式控制字符中能够输出整型数据的是abcd____。

A.%d

B.%ld

C.%lo

D.%x

E.%lf

8、若有以下程序段,并且w和k都是整型变量:

for(w=1;w<=k;w++)

printf("*");

则与上面程序段等价的循环语句是_abcd___。

(w=k;w!=0;w--)

printf("*");

B.w=k;

while(w--!=0)

printf("*")

C.w=k;

do {

w--;

printf("*");

}while(w!=0);

(w=k;w;--w)

printf("*");

E.w=k;

for(k=1;k

printf("*");

9、函数的类型可以是abce____。

*

f

10、下列正确的赋值语句是_ade___。

A.n=(i2,i++);

B.j++;

C.++(i+1);

D.x=j>0;

E.y=a>b?a:b;

11、下列说法正确的是bcde____。

A.在C程序中,无论是整数还是实数,都能被准确地表示

B.在C程序中,声明变量时为变量开辟内存空间

C.静态变量的生存期与整个程序的运行期相同

D.C语言中变量必须先说明后引用

E.C语言中空语句是合法的

12、C语言提供的逻辑运算符有_bde___。

B.||

D.&&

E.!

13、下列语句中能够判断整型变量a、b、c的值是否能够构成三

角形的语句是bc____。

(a+b>c && a-b

(a+b>c && a+c>b && b+c>a)

(a-b

(a-b

(a+b>c)

14、在下列选项中,构成死循环的程序段是_abde___。

i=100;

while(1)

{ i=i%100+1;

if(i>100)break; }

(;;)

k=1000;

do

{ ++k;}while(k>=10000);

s=36;

while(s);--s;

(i=1;;i++);

15、下列关于符号常量正确的是_ade___。

A.符号常量用标识符表示

B.符号常量不允许被修改

C.符号常量允许在程序运行中改变

D.#define N 10

E.符号常量没有值和类型的含义

16、下列不合法的实型常量有_abd___。

A.5E2.0

B.E-3

C.2E0

D.1.3E

E.2E2

17、把字符串"hello"赋给数组b的语句是_acde___。

b[10]={'h','e','l','l','o'};

b[10];b="hello";

b[10];strcpy(b,"hello");

b[]="hello";

b[]={'h','e','l','l','o','0'};

18、可以不要进行函数原型声明的函数是_bc___。

A.被调用函数的数据类型是int


本文标签: 语句 C语言 变量