当前位置: 首页 > 其他范文 > 其他范文

C语言练习题

作者:甩锅小天才 | 发布时间:2022-04-11 09:20:16 收藏本文 下载本文

C语言练习题

习题一

一.填空题

1.i为int型变量,且初值是3,有表达式i++3,则

该表达式的值是,变量i的值是。

2.i为int 型变量,且初值是2,有表达式++i3,则

该表达式的值是,变量i的值是。

3.i为int型变量,且初值是3,有表达式i=i+=i5,则

该表达式的值是,变量i的值是。

4.i为int型变量,且初值是3,有表达式i=(a=5,b=10)+(i+=b, b+=a),则该表达式的值是,变量i,a,b的值分别是。

5.i为int型变量,且初值是3,有表达式i=(i+=i, i=i), i10, i%4,则

该表达式的值是,变量i的值是。

6.说明变量为双精度的关键字是。

7.在Turbo C中,整型数据的表示形式有 种。

二.选择题

1.若a, b, c, d都是int型变量且初值均为10,不正确的赋值语句是()。

A.a=b=c=d;B.a=b++;C.a+b++;D.d=(a=b=125)c++;

2.若a, b, c, d都是float型变量且初值为10.95,不正确的赋值语句是()。

A.a=b=15;B.d=int(a+c);C.a=(int)(b+1);D.++a;

3.若a, b, c均为int型变量且有值,要交换变量a和b的值,正确的语句组是()。

A.c=a, a=b, b=c;B.a=b;b=a;

C.c=a;a=b;b=c;D.c=a;b=a;a=c;

4.若a, b均为int型变量,x, y均为float型变量,正确的输入函数是()。

A.scanf("%d%f",&a,&b);B.scanf("%d%f",&a,&x);

C.scanf("%d%d",a,b);D.scanf("%f%f",x,y);

5.若x, y均为double型变量,正确的输入函数是()。

A.scanf("%f%f",&x,&y);B.scanf("%d%d",&x,&y);

C.scanf("%lf%lf",&x,&y);D.scanf("%lf%lf",x,y);

6.若x为char型变量,y为int型变量,x, y均有值,正确的输出函数是()。

A.printf("%c%c",x,y);B.printf("%c%s",x,y);

C.printf("%f%c",x,y);D.printf("%f%d",x,y);

7.若x, y均为int型变量且有值,要输出x, y的值,正确的输出函数是()。

A.printf("%d%d",&x,&y);B.printf("%f%f",x,y);

C.printf("%f%d",x,y);D.printf("%d%d",x,y);

8.x为int型变量,且值为2345,不正确的输出函数是()。

A.printf("%d",x);B.printf("%3d",x);

C.printf("%c",x);D.printf("%s",x);

习题二

一.写出下列程序的运行结果

1.下面程序的运行结果是()。

main()

{int a, b;

a=23;b=87;

printf("%d%dn",a,b);

}

A. 23 B.23,87 C. a=23 D.2387

87 b=87

2.下面程序的运行结果是()。

main()

{float x, y;

x=12.34;y=0.00045;printf("%f,%f",x,y);

}

A.12.34,0.00045 B.12.340000,0.000450

C.12.34 0.00045 D.12.340000 0.000450

3.下面程序的运行结果是()。

main()

{int h=34, k=56;

printf("h=%dnk=%dn",h,k);

}

A. h=34 B.h=34 k=56 C.34 56 D. 34

k=56 56

4.下面程序的运行结果是()。

main()

{float x=12.34567, y=345.2354;

printf("x=%5.3 f, y=%5.3 f ",x,y);

}

A.12.346,345.235 B.x=12.346, y=345.235

C.12.345670,345.235000 D.x=12.34567, y=345.2354

5.下面程序的运行结果是()。

main()

{int s=3, w=5;

printf("%u, %u, %d, %d",s,w,s,w);

}

A.3,5,3,5 B.3 5 3 5 C.65533,5,3,5 D.65533,65531,3,5

习题二

6.运行下面程序时若从键盘输入:123 45 6789  输出结果是()。

main()

{ int a, b, c;

scanf("%3d%3d%3d",&a,&b,&c);

printf("a=%d, b=%d, c =%d", a,b,c);

}

A.a=123, b=45, c=678 B.a=123 b=454 c=678

C.123, 45, 678 D.a=123, b=456, c=789

7.运行下面程序时若从键盘输入:123456789 输出结果是()。

main()

{int a, b, c;

scanf("%3d%3d%3d",&a,&b,&c);

printf("a=%d, b=%d, c=%d",a,b,c);

}

A.a=123, b=45, c=678 B.a=123, b=456, c=789

C.123, 456, 789 D.a=123 b=456 c=789

8.以下程序若a=12, b=45, c=3467, 正确的数据输入方法是()。

main()

{int a, b, c;

scanf("a=%dB=%dc=%d",&a,&b,&c);

printf("%d, %d, %dn",a,b,c);

}

A.a=12 b=45c=3467 B.12 45 3467

C.a=12B=45c=3467 D.a=12 b=45 c=3467

二.填空题

1.C语句的最后用 结束。

2.执行printf("%d",045);函数的结果是。

3.执行printf("%un",-0x2a);函数的结果是。

4.若x是整型,且x = 1,执行printf("%on", x);函数的结果是。

5.若一个C程序包含若干个函数,程序的执行总是从 函数开始。

习题三

1.设a=1, b=2, c=3,写出下列关系表达式的值

(1)(a

(2)(c(a

(3)a+b==c。

(4)a+b>=c。

2.设a=1, b=2, c=3, d=4写出下列逻辑表达式的值

(1)a &&b &&c。

(2)a ||!b ||!c。

(3)++a || b++ &&++c || d++。

(4)(!(a+b)+c1)&&(b+c/2)。

(5)a!=11 &&b<4。

3.设x=y=z=1,则执行逻辑表达式++x || ++y &&++z后,x,y,z的值分别为。

4.设x=y=z=1, 执行逻辑表达式++x &&y || ++z后,x, y, z的值分别为。

5.设a=1, b=2, c=3, d=4, x=1, y=1,则执行逻辑表达式(x=a>b)&&(y=c>d)后,x,y的值分别为。

6.在以下一组运算符中,优先级最高的运算符是()

A.<= B.= C.% D.&&

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

main()

{ int a=1, b=4, k;

k=(++a<0)&&!(b<=0);

printf("%d,%d,%dn",k,a,b);

}

8.在C中,下列哪一个表达式能正确表示a 10或a  0()

A.a>=10 or a<=0 B.a>=10 | a<=0

C.a>=10 || a<=0 D.a>=10 &&a<=0

9.若a,b,c均为int型变量,则执行以下语句后,a,b,c的值分别为。

a=b=c=1;

++a || ++b &&++c

习题三

10.给出下列程序的输出结果

(1)main()

{int a, b, c;

a=E;b=J;c=W;

if(a>b)

if(a>c)printf("%cn",a);

else printf("%cn",c);

else if(b>c)printf("%cn",b);

else printf("%cn",c);

}

结果是:

(2)main()

{int x=100, a=10, b=20, OK1=5, OK2=0;

if(a

if(b!=15)

if(!OK1)x=1;

else

if(OK2)x=10;

x=1;

printf("%dn",x);

}

结果是:

(3)运行两次下面的程序,如果分别从键盘上输入数值6和4,其运行结果分别为

main()

{int x;

scanf("%d",&x);

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

else printf("%dn",x);

}

输入6时,结果是:

输入4时,结果是:

11.若有定义:float x;int a, b;再有下面4个switch语句

A.switch(x)

{case 1.0: printf("n");

case 2.0: printf("n");}

B.switch(x)

{case 1,2: printf("n";)

case 3: printf("n");}

C.switch(a+b);

{case 1 : printf("n");

case 1+2: printf("n");}

D.switch(a+b)

{case 1: printf("n");

case 2: printf("n");}

正确的switch语句是(),其它switch语句错在什么地方?

习题四

1.下面程序若在运行时从键盘输入3.6 2.4 ,运行结果为()。

#include"math.h"

main()

{float x,y,z;

scanf("%f%f",&x,&y);

z=x/y;

while(1)

{if(fabs(z)>1.0){x=y;y=z;z=x/y;}

else break;

}

printf("%fn",y);

}

A.1.500000 B.1.600000 C.2.000000 D.2.400000

2.下面程序的输出是()。

main()

{int x=3,y=6,a=0;

while(x++!=(y=1))

{a+=1;

if(y

}

printf("x=%d,y=%d,a=%dn",x,y,a);

}

A.x=4, y=4, a=1 B.x=5, y=5, a=1

C.x=5, y=4, a=3 D.x=5, y=4, a=1

3.以下程序的功能是:从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束,请填空。

main()

{float x,amax,amin;

scanf("%f",&x);

amax=x;amin=x;

while()

{if(x>amax)amax=x;

if()amin=x;

scanf("%f",&x);

}

printf("namax=%fnamin=%fn",amax,amin);

}

习题四

4.下面程序的输出是:。

main()

{int x=2;

while(x);

printf("%dn",x);

}

5.下面程序的运行结果为:。

main()

{int i=0, sum=1;

do

{sum+=i++;}

while(i<6);

printf("%dn",sum);

}

6.C语句中,下列说法中正确的是()。

A.不能使用do-while语句构成的循环;

B.do-while语句构成的循环必须用break语句才能退出;

C.do-while语句构成的循环,当while语句中的表达式值为非零时结束循环;

D.do-while语句构成的循环,当while语句中的表达式值为零时结束循环。

7.下面程序的输出结果是:。

main()

{int y=9;

for(;y>0;y)

if(y%3==0)

{printf("%d",y);

continue;

}

}

8.若x是int型变量,且有下面的程序段,其运行结果为()。

for(x=3;x<6;x++)printf((x%2)?("%d"):("##%dn"),x);

A.3 B. ##3 C. ##2 D. 3##4

##4 3 4##5 5

5 ##5

习题四

9.以下程序的运行结果是()。

main()

{int i;

for(i=1;i<=5;i++)

{if(i%2)printf("");

else continue;

printf("#");

}

printf("$n");

}

A.###$ B.###$ C.##$ D.##$

struct stu student2;

student2=student1;

student2.name[0]=H;

student2.name[1]=u;

student2.StuClass=990325;

student2.sub.math=83;

printf("%s,%c,%ld,%d,%d,%dn",student2.name,student2.sex,student2.StuClass,student2.sub.math,student1.sub.eng,student2.sub.comp);

}

运行结果:

3.#include

union memb

{float v;

int n;

char c;

};

main()

{union memb tag,Sval;

tag.n=673;

Sval=tag;

printf("Sval is: %d",Sval.n);

}

运行结果:

习题九 学号: 专业: 姓名:

4.#include

#include

struct person

{char name[12];

int age;

char sex;

char addr[40];

long telNo;

};

main()

{struct person doctor;

printf("Please imput Name,Age,Sex,Addr,TelNo:n");

scanf("%s%d%c%s%ld",doctor.name,&doctor.age,&doctor.sex,doctor.addr,&doctor.telNo);

printf("%s,%d,%c,%s,%ldn",doctor.name,doctor.age,doctor.sex,doctor.addr,doctor.telNo);

}

运行后输入:Liming 18MEastRoad116 8375642

运行结果:

5.#include

union memb

{

double v;

int n;

char c;

};

main()

{

union memb tag;

tag.n=26;

tag.c=A;

tag.v=48.7;

printf("%6.2ft %4dt %ct",tag.v,tag.n,tag.c);

}

运行结果:

习题十 学号: 专业: 姓名:

一.选择题

1.fgets(str, n, fp)函数从文件中读入一个字符串,以下叙述中正确的是()。

A.字符串读入后不会自动加入

B.fp是file类型的指针

C.fgets函数将从文件中最多读入n 1个字符

D.fgets函数将从文件中最多读入n个字符

2.已知函数fread的调用形式为fread(buffer, size, count, fp),其中buffer代表的是()。

A.存放读入数据项的存储区

B.一个指向所读入文件的文件指针

C.存放读入数据的地址或指向此地址的指针

D.一个整形变量,代表要读入的数据项总数

3.函数调用语句:fseek(fp,10L ,2);的含义是()。

A.将文件位置指针移到距离文件头10个字节处

B.将文件位置指针从当前位置向文件末尾方向移动10个字节

C.将文件位置指针从当前位置向文件末尾方向移动10个字节处

D.将文件位置指针从文件末尾处向文件头的方向移动10个字节处

二、填空题

1.feof(fp)函数用来判断文件是否结束,如果遇到文件结束,函数值为,否则为。

2.函数调用语句:fgets(str , n, fp);从fp指向的文件中读入 个字符放到str字符数组中。函数值为。

3.在C中,文件指针变量的类型只能是。

4.为了从文本文件中读入数据,在打开文件时,应该指定的方式是。

5.为了把新的数据加入一个二进制文件的末尾,在打开文件时,应该指定的方式是。

6.用来把文件的位置指针移向文件的开头的函数是。

7.文件结束标志EOF只可用于 文件。

习题十 学号: 专业: 姓名:

8.当结束对文件的输入、输出操作时,用来关闭文件的预定义函数是。

9.下面程序用来统计文件中字符的个数,请填空。

#include

main()

{

FILE fp;

long num=0;

if((fp=fopen("fname.dat","r"))==NULL)

{

printf("Cant open file!n");

exit(0);

}

while

{

fgetc(fp);

num++;

}

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

fclose(fp);

}

10.下面程序把从终端读入的文本(用@作为文本结束标志)复制到一个名为bi.dat的新文件中。请填空。

#include

main()

{

FILE fp;

char ch;

if((fp=fopen( ))==NULL)

exit(0);

while((ch=getchar())!=@)

fputc(ch,fp);

;

}

C习题

(参考答案)

习题一

一.填空题

1.0 4

2.0 3

3.18 18

4.25 25, 5, 15

5.0 36

6.double

73

二.选择题

1.C

2.B

3.C

4.B

5.C

6.A

7.D

8.D

习题二

一.写出下列程序的运行结果

1.D

2.B

3.A

4.B

5.C

6.A

7.B

8.C

二.填空题

1.;

2.37

3.65494

4.177777

5.main()

习题三

1.0 0 1 1

2.1 1 1 1 1

3.0, 0, 1

4.2, 0, 1

5.0, 1

6.C

7.0, 0, 4

8.C

9.2, 1, 1

10(1)W (2)1 (3)75

11.D

习题四

1.B

2.D

3.x>=0,x

4.1

5.16

6.D

7.852

8.D

9.A

10.n=1

s 2

习题五

1.C

2.D

3.B

4C

5.C

6. 全局,局部  编译

7

8.D

9.B

10.D

11.D

12.A

13.12

14.9

15.S=16

16.30

17.84

18.x=81

19.2226

20n = 6

n = 8

21.4

22i =2, j = 2

i = 0, j = 3

i = 9, j = 3

习题六

一.选择题

1.B

2.C

3.C

4.D

5.D

6.D

7.c languge

8.A

9.B

二.填空题

1.880

2.5

3.3

4.x=5, y=9

x=9, y=5

5.V=1 V=2

习题七

一.选择题

1.D 2D 3A

二.阅读下列程序,写出运行结果。

1.12345678910 2.357 3.x=120

4.max=10, row=2, colum=1

5.1234223455 6.I have a book 7.7531

How are you

8.open your book.9.gfedcba 10.i=6

j=10

三.填空题

1.break;

2.int a[],int b[]b[i]=a[i];a[10];(a[i];)acopy(a,b);

3.a[] a[i]!=999 i++;sum/10;(sum/i;)

4.k=p; 5.name[i][0]==C;

6.i=0;i<10;i++ i=9;i>=0;i

习题八

一.选择题

1.A

2.D

3.C

4.C

5.B

6.A

7.C

8.C

9.C

10.B

11.C

12.B

13.B

14.D

15.B

16.D

17.B

二.写出程序运行后的结果

1.eybdooG 2.11,9,5,11

三.填空题

1.是数组元素a[1][0]的地址

是数组元素a[2][0]的地址

是数组元素a[1][2]的地址

是数组元素a[0][2]

2.s s+n1 pipj

习题九

一.选择题

1D 2B 3C 4A

二.阅读下列程序,写出运行结果

1.4 8 2.Hu Ming,M,990325,83,80,90 3.Sval is: 673

4.Liming,18, ,MEastRoad116,8375642

5.48.70——(tag.n和tag.c的值为不可预料的)

习题十

一.选择题

1.C 2.C 3.D

二.填空题

1.1,0 2.n1,str的首地址 3.FILE 4."w"

5."ab"6.remind 7.文本 8.fclose()

9.(!feof())10."bi.dat","w"fclose()

年月日练习题

《钢铁是怎样炼成的》练习题

高中生物练习题

失物招领练习题

正比例练习题

本文标题: C语言练习题
链接地址:https://www.dawendou.com/fanwen/qitafanwen/732275.html

版权声明:
1.大文斗范文网的资料来自互联网以及用户的投稿,用于非商业性学习目的免费阅览。
2.《C语言练习题》一文的著作权归原作者所有,仅供学习参考,转载或引用时请保留版权信息。
3.如果本网所转载内容不慎侵犯了您的权益,请联系我们,我们将会及时删除。

重点推荐栏目

关于大文斗范文网 | 在线投稿 | 网站声明 | 联系我们 | 网站帮助 | 投诉与建议 | 人才招聘 | 网站大事记
Copyright © 2004-2025 dawendou.com Inc. All Rights Reserved.大文斗范文网 版权所有