文档库 最新最全的文档下载
当前位置:文档库 › c语言习题讲解

c语言习题讲解

c语言习题讲解
c语言习题讲解

1.下列选项中,合法的C语言整型常量是()

A.087

B.5L

C.(long)123456

D.1.23e+2

2.以下不合法的常量是()

A.'\6'

B." "

C.'\286' D"\286"

3.表达式strlen("\\\"AAA\123\xAA\t")的值为()

A.8

B.17

C.14

D.10

4.已知'a'的ASCII码值为97,以下程序输出的结果是() #include

main()

{

char a='A';

int b=20;

printf("%d,%o",(a=a+1,a+b,b),a+'a'-'A',b);

}

A.66,141

B.20,141

C.20,141,20

D.66,97

5.

#include

main()

{

int x=34;

float y=45.98;

printf("%6D,%6.2F",x,y);

}

6.下列程序输出结果是()

main()

{

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

k=a+++b+++c++;

printf("\n%d,%d,%d,%d",a,b,c,k);

A.1,2,3,6

B.2,3,4,6

C.1,3,3,7

D.1,3,3,6

7.以下()有语法错误的if语句。

A. if(3.54)

B. if(a!=b) printf("%d",a)else printf("%d",b);

C. if('s'&&s)s++;

D.if(!a) printf("%d",a);

8.输入数据:-1(回车),以下程序的输出是()

A.x=0,y=-1;

B.x=-1,y=0;

C.x=0,y=1;

D.x=1,y=0;

9 假设int a,b,c,w;且a和b均已被赋值,同时满足条件:a

Scanf(“%d”,&c);

W=a;

If(w<=b) w=b;

If(w<=c) printf(“%d”,w);

Else w=c;

A.b>c

B.b<=c

C.c>a且c

答案:B

3.18运行一下程序时,输入数据:abcdabc 再回车,输出为()

#include “stdio.h”

Main()

{

Int a1=0,a2=0,a3=0;

Char c;

While((c=getchar())!=’\n’)

Switch (c)

{

Case ‘a’ : a1++;

Case ‘b’ :a2++;

Default :a3++;’

}

Printf(“%d,%d,%d”,a1,a2,a3);

}

A.2,4,7

B.2,2,1

C.2,4,1

D.2,2,7

答案:A

3.19 对循环语句:for(表达式1;表达式2;表达式3)语句,一下叙述正确的是()

A.for语句中的三个表达式一个都不能少

B.for语句中的循环体至少要被执行一次

C.for语句中的循环体可以是一个复合语句

D.for语句只能用于循环次数已经确定的情况

答案:C

3.20 执行完循环语句for(i=1;i++<10);后,变量i的值是多少?循环体被执行了几次?

A.i的值是8,循环体执行了9次。

B..i的值是9,循环体执行了10次。

C. .i的值是10,循环体执行了10次。

D. .i的值是11,循环体执行了9次。

答案:D

3.21 一下程序段执行后,叙述正确的是()

Int I;

For(i=1; ;i++);

Printf(“%d”,i++);

A.输出1,

B.输出2

C.输出3

D.死循环

答案:D

3.22 一下程序的输出结果是()

main()

{

Int y=9;

For( ;y>0;y--)

If(y%3==0)

Printf(“%d”,--y);

}

A.741

B.852

C.963

D.87521

答案:B

3.23 若x,y是int型变量,则执行以下语句后x的值是()For(y=1,x=1;y<=50;y++)

{

If(x>=10) break;

If(x%2==1)

{

X+=5;continue;

}

x-=3;

}

A.1

B.6

C.7

D.10

答案:D

3.24 对一下程序段,描述正确的是()

Int k=10;

While(k=0) k=k-1;

A.循环体执行了10次

B.循环是无限循环

C.循环体语句一次也不执行

D.循环体语句执行了一次

答案:C

3.25对以下程序段,描述正确的是()

Int k=10;

While(k>0)

Printf(“%d”,k);

K=k-1;

A.循环体被执行了10次

B.循环是无限循环

C.循环体一次也不执行

D.循环体语句执行了一次

答案:B

3.26 下面程序的运行结果是()

Main()

{

Int I,j,k,x=0;

For(i=0;i<2;i++)

{

X++;

For(j=0;j<3;j++)

{

If(j%2) continue;

X++;

}

X++;

}

K=i+j;

Printf(“k=%d,x=%d\n”,k,x);

}

A.K=8,X=4

B.K=5,X=8

C.K=3,X=6

D.K=8,X=12

答案:B.

3.27 假设char grade=’A’;则以下程序段的执行结果是()Switch(grade)

{

Case ‘A’;

Case ‘B’:

Case ‘C’: printf(“>=60 pass!\n”);

Case ‘D’: printf(“<60\n”);

Default :printf(“error!\n”);

}

答案:>=60 pass!

<60

Error!

3.28以下程序段的运行结果是()

Main()

{

Int a=2,b=7,c=5;

Switch(a>0)

{

Case 1: switch(b<0)

{

Case 1: printf(“@”); break;

Case 2: printf(“!”); break;

}

Case 0: switch(c==5)

{

Case 0: printf(“*”);break;

Case 1: printf(“#”);bre ak;

Default :printf(“#”);break;

}

Default : printf(“&”);

}

Printf(“\n”);

}

答案:#&

3.29以下程序实现:输入三个整数,按从大到小的顺序输出,请填空。Main()

{

Int x,y,z,T;

Scanf(“%d %d %d”,&x,&y,&z);

If(x

{

T=x; x=y; y=T;

}

If(①)

{

T=x; x=z;z=t;

}

If(y

{ ②}

Printf(“%d, %d, %d”,x,y,z);

}

答案:①x

②t=y; y=z; z=t;

3.30 为了输出如下图形,请在程序处填入合适的内容。

*****

*****

*****

*****

*****

Main()

{

Int I,j;

For(i=1; i<6; i++)

{

For(j=1; j<6; j++)

__①__;

__②__;

}

}

答案:①printf(”*”)

②printf(“\n”)

为了输出如下图形,请在程序处填入合适的内容。

*

***

*****

*******

*********

Main()

{

Int I,j;

For(i=1; i<6;i++)

{

For(j=1;j<10-1;j++);

Printf(“ ”);

For(j=1;j<=___;j++)

Printf(“*”);

Printf(“\n”);

}

}

答案:2*i-1

3.32 若变量a,i已正确定义,且i已正确赋值,下列合法的语句是()

A.a==1 B ++I; C.a=a++=5; D.a=int(i);

答案:B

3.36 已知:

Int t=0;

While(t=1)

{…….}

则以下叙述正确的是________

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

B.循环控制表达式的值为1

C.循环控制表达式不合法

D.以上说法都不对

答案:B

3.38 下面程序的输出结果是___

Main()

{

Int x=1,a=0,b=0;

Switch(x)

{

Case 0: b++;

Case 1: a++;

Case 2:a++;b++;

}

Printf(“a=%d,b=%d\n”,a,b);

}

A.a=2,b=1

B.a=1,b=1

C.a=1,b=0 Da=2,b=2

答案:A

3.39下面程序的输出结果是_____

Main()

{

Int i=1,j=1,k=2;

If((j++||k++)&&i++)

Printf(“%d,%d,%d\n”,I,j,k);

}

A.1,1,2

B.2,2,1

C.2,2,2

D.2,2,3

答案C

3.40 下面程序的输出结果是:___

Main()

{

Int n=9;

While(n>6)

{

n--;

printf(“%d”,n);

}

}

A.987

B.876

C.8765

D.9876

答案:B

3.41在下面选项中,没有构成死循环的是__

A. int i=100;

Whiel(1)

{

I=i%100+1;

If(i>100) break;

}

B.for(; ;) ;

C.int k=10000

do

{

K++;

}while(k>10000);

D, int s=36;

While(s)

--s;

答案:D

3.42若运行一下程序,输入ADescriptor在回车,则下面的程序运行结果是______ #include

Main()

{

Char c;

Int v0=1,v1=0,v2=0;

Do

{

Switch(c=getchar())

{

Case ‘a’: case ‘A’:

Case ‘e’:case ‘E’:

Case ‘i’: case ‘I’:

Case ‘o’: case ‘O’:

Case ‘u’: case ‘U’:v1+=1;

Default:v0+=1;v2+=1;

}

}

While(c!=’\n’);

Printf(“v0=%d,v1=%d,v2=%d\n”,v0,v1,v2);

}

A.v0 = 7, v1=4, v2=7

B.v0 = 8, v1=4, v2=8

C.v0 = 11,v1= 4, v2=11

D.v0 = 13 v1= 4 v2=12

答案:D

3.44以下程序段的描述正确的是___

X=-1;

Do

{

X=x*x;

}

While(!x)

A.是死循环

B.循环执行两次

C.循环执行一次

D.有语法错误

答案:c

3.45在下述程序中,判断i>j共执行的次数是____ Main()

{

Int i=0,j=10,k=2,s=0;

For(; ;)

{

I+=k;

If(i>j)

{

Prntf(“%d”,s);

Break;

}

S+=I;

}

}

A.4

B.7

C.5

D.6

答案:D

3.46下面程序的功能是把316表示为两个数的和,是两个加数分别能被13和11整除,请…

选择填空

#include

Main()

{

Int i=0,j,k;

Do

{

I++;

K=316-13*I;

}

While(_____);

Printf(“316=13*%d+11*%d”,I,j);

}

A.k/11

B.k%11

C.k/11==0

D.k%11==0

答案:B

3.47下面程序的运行结果是___

#include

Main()

{

Int a=1,b=10;

Do

{

b-=a;a++;

}

While(b--<0);

Printf(“a=%d,b=%d\n”,a,b);

}

A.a=3,b=11

C.a=1,b=-1

D.a=4,b=9

答案:B

3.48下面程序的运行结果是____

Main()

{

I nt x=23;

Do

{

P rintf(“%d”,x--);

}

While(!x);

}

A.321

B.23

C.不输出任何内容

D.陷入死循环

答案:B

3.49下面程序的运行结果是____

Main()

{

Int a=2,b=-1,c=2;

If(a

If(b<0) c=0

Else c++;

Printf(“%d\n”,c);

}

A.0

B.1

C.2

D.3

答案:C

3.50执行完语句for(i=1;i++,4;);以后,变量i的值是___

A.3

B.4

C.5

D.不定

答案:c

3.46有一堆零件(100到200之间),如果分成4个零件一组的若干组,则多2个,若分成7个零件一组,则多3个,若分成9个零件一组,则多5个。填写程序

#include

Main()

{

For(i=100;i<200;i++)

If((i-2)%4==0)

If(!((i-3)%7))

If(_____)

Printf(“%d”,i);

}

A.i%9=5

B.i%9!=5

C.(i-5)%9!=0

D.(i-5)%9==0

答案:D

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

Main()

{

Float x,amax,amin;

Scanf(“%f”,&x);

Amax=x;

Amin=x;

While(__①__)

{

If(x>amax)

Amax=x;

Else

If(__②___)

Amin=x;

Else

Scanf(“%f”,&x);

}

Printf(“\n amax=%f\n amin=%f\n”,amax,amin);

}

答案:①x>0

②x

3.56下列程序的功能是输入一个整数,判断是否是素数,若为素数输出1,否则输出0 Main(0

{

Int I,x,y=1;

Scanf(“%d”,&x);

For(i=2;i<=x/2;i++)

If______

{

Y=0;

Break;

}

Printf(“%d\n,”y);

}

答案:(x%i==0)

3.57下面程序的运行结果是____ Main()

{

Int y=9;

For(; y>0;y--)

If(y%3==0)

{

Printf(“%d”,--y); continue;

}

}

答案:852

c语言复习题(有答案)●

思考题 不仅要会做这些题,更重要的是要掌握其相关知识点一、一般填空题 1-1、调用fopen函数打开一文本文件,在“打开模式”这一项中,为输出(写)而打开需填入【1】. 1-2、调用fopen函数打开一文本文件,在“打开模式”这一项中,为追加而打开需填入【1】. 1-3、fopen函数的原形在头文件【1】中. 1-4、getchar函数的原形在头文件【1】中. 1-5、sqrt函数的原形在头文件【1】中. 1-6、如果函数不要求带回值,可用【1】来定义函数返回值为空. 答案:w或w+;a或a+;stdio.h ; stdio.h ; math.h ;void . 2-1、字符串“\1011234\\at”的长度(字符数)是【1】. 2-2、字符串“abc\103\\bcd”的长度(字符数)是【1】. 2-3、字符串“1\\t\x43\abx44”的长度(字符数)是【1】. 2-4、“a“在内存中占【1】个字节. 2-5、‘a’在内存中占【1】个字节. 2-6、“\71“在内存中占【1】个字节. 2-7、一维数组下标的最小值是【1】;数组char a[]=“china” ;在内存应占【1】个字节。 答案:8; 8; 9; 2;1;2 ;0;6. 3-1、设x=(5>1)+2, x的植为【1】. 3-2、表达式‘B’+15+‘\x41’+011+0x10的值是【1】. 3-3、表达式‘b’+5+‘\x42’+011+0x10的值是【1】. 答案:3;171;194; 4-1、假设所有变量都为整型,表达式(a=2,b=5,a>b?a++:b++,a+b)的值是【1】. 4-2、if(!a)中的表达式!a等价于【1】. 4_3、已知a=1,b=2,c=3,执行if(a>b>c) b=a;else b=c;a=4;b=8;后,b的值是【1】. 答案:8;a==0;8; 5-1、若所用变量都已定义,下列程序段的执行结果是【1】. for(i=1;i<=5;i++);printf(“OK\n”); 5-2、执行语句char s[3]=”ab”,*p;p=s;后,*(p+2)的值是【1】. 5-3、若有以下定义和语句:int a[4]={0,1,2,3},*p; p=&a[2]; ,则*--p的值是【1】. 5-4、下列程序的输出结果是【1】,main(){int a=011;printf(“%d\n”,++a);} 答案:OK;’\0’;1;10 6-1、若宏定义为:#define y(x) 2+x, 则表达式a=3*y(3)的值为【1】. 6-2、若宏定义为:#define y(x) 2+x, 则表达式a=4*y(2)的值为【1】. 6-3、若宏定义为:#define y(x) 2/x, 则表达式a=4+3*y(3)的值为【1】. 答案:9;10;6 . 二、单项选择题 1-1、若以"a+"方式打开一个已存在的文件,则以下叙述正确的是()。 A:文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可作添加和读操作 B:文件打开时,原有文件内容不被删除,位置指针移到文件开头,可作重写和读操作 C:文件打开时,原有文件内容被删除,只可作写操作 D:以上各种说法皆不正确 1-2、若执行fopen函数时发生错误,则函数的返回值是()。

c语言编程例题与答案解析

实验报告三 (四学时) 2.1 实验目的 (1)掌握函数的定义和调用; (2)了解函数间的参数传送; 2.2 基础实验 【题目3-1】编写函数实现将输入的字母转换成大写字母(若输入小写则转换,大写字母直接输出,其他字符请输出提示“请输入字母”)。 算法分析: 1、输入:通过键盘接收一个字符; 2、条件判断:调用判别函数 3、函数功能为:蒋所输入字符进行判别处理,若输入小写则转换,大写字母直接输出,其他字符请输出提示“请输入字母” 4、程序结束。 【实验3-1】代码及运行结果:

【题目3-2】从键盘输入若干个同学计算机课程期末考试成绩(学生人数可由用户输入),求该课程的期末成绩的平均分并输出。 函数功能要求:实现若干(例如5名)同学的的期末成绩输入,并统计出平均分。 算法分析: 1、输入:通过键盘接收同学个数; 2、调用求平均分函数 3、输出平均成绩 4、程序结束。

【实验3-2】代码及运行结果:

【题目3-3】请用函数编写程序实现:计算3 到100 之间所有素数的平方根之和,并输出。s=148.874270。 算法分析: 1、编写函素数判别函数,确定返回标记,如果是素数返回1,否则返回0 2、编写主函数,用一重循环遍历100以内所有数据 2.1、通过素数判别函数对循环的数据进行是否为素数的判别 2.2、返回判别为真的整数,并输出 3、程序结束。 【实验3-3】代码及运行结果: #include #include int Prime(int x) { int i ; if(x<=1) return 0; for(i=2;i<=x-1;i++) { if(x%i==0) { return 0;

C语言练习题附解析

C语言练习题 例1.已知圆柱体的底半径为radius ,高为high ,求其体积。 #include main() { float radius,high,vol,pi=3.1415926; printf("Please input radius & high: "); scanf("%f%f",&radius,&high); /* 从键盘输入两个实数赋给变量r,h*/ vol=pi*radius*radius*high; printf("radius=%7.2f, high=%7.2f, vol=%7.2f\n",radius,high,vol); } 程序运行结果如下: Please input radius & high: 2.5 □ 2.0 8 radius= □□□ 2.50,high= □□□ 2.00,vol= □□ 39.27 /* 例2 试编写求梯形面积的程序,数据由键盘输入。 分析:设梯形上底为A,下底为B,高为H面职为S,则S=(A+B)*H÷2 */ #include void main() { float a,b,h,s; printf("please input a,b,h:"); scanf("%f%f%f",&a,&b,&h); s=0.5*(a+b)*h; printf("a=%6.3f b=%6.3f h=%6.3f\n",a,b,h); printf("s=%8.4f\n",s); } /*例3-1 输入一组学生成绩,评定其等级。方法是:90~100分为"A",80~89分为"B",70~79分为"C",60~69分为"D",60分以下为"E"。 使用if语句实现的程序段如下:*/ #include void main() { int x; scanf("%d",&x); if (x>=90) printf("A"); else if (x>=80) printf("B"); else if (x>=70) printf("C"); else if (x>=60) printf("D"); else printf("E");

C语言函数习题及答案

第6章函数习题 一、选择题 1. 一个完整的C源程序是【】。 A)要由一个主函数或一个以上的非主函数构成 B)由一个且仅由一个主函数和零个以上的非主函数构成 C)要由一个主函数和一个以上的非主函数构成 D)由一个且只有一个主函数或多个非主函数构成 2. 以下关于函数的叙述中正确的是【】。 A)C语言程序将从源程序中第一个函数开始执行 B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行 C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束 D)main可作为用户标识符,用以定义任意一个函数 3. 以下关于函数的叙述中不正确的是【】。 A)C程序是函数的集合,包括标准库函数和用户自定义函数 B)在C语言程序中,被调用的函数必须在main函数中定义 C)在C语言程序中,函数的定义不能嵌套 D)在C语言程序中,函数的调用可以嵌套 4. 在一个C程序中,【】。 A)main函数必须出现在所有函数之前 B)main函数可以在任何地方出现 C)main函数必须出现在所有函数之后 D)main函数必须出现在固定位置 5. 若在C语言中未说明函数的类型,则系统默认该函数的数据类型是【】 A)float B)long C)int D)double 6. 以下关于函数叙述中,错误的是【】。 A)函数未被调用时,系统将不为形参分配内存单元 B)实参与形参的个数应相等,且实参与形参的类型必须对应一致 C)当形参是变量时,实参可以是常量、变量或表达式 D)形参可以是常量、变量或表达式 7. C程序中各函数之间可以通过多种方式传递数据,下列不能用于实现数据传递的方式是 【】。 A)参数的形实(哑实)结合 B)函数返回值 C)全局变量 D)同名的局部变量 8. 若函数调用时参数为基本数据类型的变量,以下叙述正确的是【】。 A)实参与其对应的形参共占存储单元 B)只有当实参与其对应的形参同名时才共占存储单元 C)实参与对应的形参分别占用不同的存储单元

C语言练习题集(带答案解析)

精品文档 1. ( A )是构成C 语言程序的基本单位。 A 、函数 B 、过程 C 、子程序 D 、子例程 2. C 语言程序从 ____ C ________ 开始执行。 A ) 程序中第一条可执行语句 B )程序中第一个函数 C )程序中的main 函数 D )包含文件中的第一个函数 3、以下说法中正确的是( C )。 A 、 C 语言程序总是从第一个定义的函数开始执行 B 、 在 C 语言程序中,要调用的函数必须在 main ()函数中定义 C 、 C 语言程序总是从 main ()函数开始执行 D 、 C 语言程序中的 main ()函数必须放在程序的开始部分 4. 下列关于C 语言 的说法错误的是( B ) 。 A ) C 程序的工作过程是编辑、编译、连接、运行 B ) C 语言不区分大小写。 C ) C 程序的三种基本结构是顺序、选择、循环 D ) C 程序从main 函数开始执行 5. 下列正确的标识符是(C )。 A. -a1 B.a[i] C.a2_i 6. 下列C 语言用户标识符中合法的是( B )。 A) 3ax B)x C)case D)-e2 E)u nion 7. 下列四组选项中,正确的 C 语言标识符是 (C )。 A ) %x B ) a+b C ) a123 D ) 8、 下列四组字符串中都可以用作 A 、print _3d db8 aBc B C 、str_1 Cpp pow while D 9. C 语言中的简单数据类型包括( A 、整型、实型、逻辑型 C 、整型、字符型、逻辑型 C 语言程序中的标识符的是( A ) 、I\am one_half start$it 3pai 、Pxq My->book line# His.age D )。 B 、整型、实型、逻辑型、字符型 D 、整型、实型、字符型 10. 在C 语言程序中,表达式 5%2的结果是—C_ A)2.5 B)2 C)1 D)3 11. 如果int a=3,b=4 ;则条件表达式"a

C语言综合习题及答案

C语言综合习题及答案 Prepared on 24 November 2020

C语言练习题 一、选择题 1. 一个完整的C源程序是【B 】。 A)要由一个主函数或一个以上的非主函数构成 B)由一个且仅由一个主函数和零个以上的非主函数构成 C)要由一个主函数和一个以上的非主函数构成 D)由一个且只有一个主函数或多个非主函数构成 2. 以下关于函数的叙述中正确的是【C】。 A)C语言程序将从源程序中第一个函数开始执行 B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束 D)main可作为用户标识符,用以定义任意一个函数 3. 以下关于函数的叙述中不正确的是【B】。 A)C程序是函数的集合,包括标准库函数和用户自定义函数 B)在C语言程序中,被调用的函数必须在main函数中定义 C)在C语言程序中,函数的定义不能嵌套 D)在C语言程序中,函数的调用可以嵌套 4. 在一个C程序中,【B 】。 A)main函数必须出现在所有函数之前 B)main函数可以在任何地方出现 C)main函数必须出现在所有函数之后 D)main函数必须出现在固定位置 程序的执行是从【A 】开始的。 A)主函数 B)子函数 C)从程序第一行 D)printf()函数 6.以下选项中不合法的标识符是【C 】 A)print B)FOR C)&a D)_00 7.以下选项中可作为C语言合法常量的是【A】 A)-80 B)-080 C) D) 8.以下选项中不属于字符常量的是【B】 A)′C′ B)"C" C)′\xCC′ D) ′\072′ 9. 若在C语言中未说明函数的类型,则系统默认该函数的数据类型是【C】

c语言习题及答案

第一章1.1 题目内容: 使用printf()在屏幕上输出hello world! 提示: #include int main() { printf("hello world!\n"); return 0; } 输入格式: 无 输出格式: 输出提示信息:"hello world!\n" 输入样例: 输出样例: hello world! #include int main() { printf("hello world!\n"); return 0; } 1.2 在屏幕上输出多行信息(3分) 题目内容: 使用printf()函数在屏幕上输出以下多行信息: hello world! hello hit! hello everyone! 提示: 在printf()函数中转义字符‘\n’表示换行。

输入格式: 输出格式: 输出提示信息: "hello world!\n" "hello hit!\n" "hello everyone!\n" 输入样例: 输出样例: hello world! hello hit! hello everyone! #include int main() { printf("hello world!\n"); printf("hello hit!\n"); printf("hello everyone!\n"); return 0; } 1.3 计算半圆弧的周长及半圆面积(3分) 题目内容: 编程并输出半径r=5.3的半圆弧的周长及该半圆的面积,的取值为3.14159。要求半径r和必须利用宏常量表示。输入格式: 无 输出格式: 半圆的面积输出格式: "Area=%f\n" 半圆弧的周长输出格式: "circumference=%f\n" 输入样例: 输出样例: Area=44.123632 circumference=16.650427 #include #define PI 3.14159 #define R 5.3 int main() { printf("Area=%f\n", R*R*PI/2); printf("circumference=%f\n", 2*R*PI/2); return 0; }

c语言实验习题及答案详解

1.数据类型 a.输入一个小数点后有多位数字的小数,实现将其保留三位小数,并输出;, #include<> main() {double b,d; printf("请输入一个小数:"); scanf("%lf",&b); printf("输出原来的数:%f\n",b); b*=1000; b+=; b=(int)b; d=b/1000; printf("输出现在的数:%.3lf\n0",d); } b.输入一个4位整数,求其得各位数字的平方和;(1234 1+4+9+16=30) #include<> main() {int n,sum=0,i,t; printf("请输入一个四位整数:\n"); scanf("%d",&n); for(i=0;i<4;i++) {t=n%10; n/=10; sum+=t*t; } printf("%d\n",sum);

} c.定义字符型变量ch,写出六种给ch赋值字符’A’的代码; #include<> main() {char ch; ch='A'; ch=65; ch=0x41; ch=0101; ch='\101'; ch='\x41'; } d.编写程序输出26组大小写字母;(AaBbCc……….XxYyZz) #include<> main() {int i; for(i=65;i<91;i++) {printf("%c",i); printf("%c",i+32); } printf("\n"); } e.定义浮点型变量f1、f2,为f1赋值10的-30次,为f2赋值10的30次 #include<> main() { double f1,f2; f1=10e-30;

大学C语言期末考试练习题(带详解答案)

一、单项选择题 1.(A)是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 2.C语言程序从C开始执行。 A) 程序中第一条可执行语句B) 程序中第一个函数 C) 程序中的main函数D) 包含文件中的第一个函数 3、以下说法中正确的是(C)。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是(B)。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C)。 A.-a1 B.a[i] C.a2_i D.int t 5~8题为相同类型题 考点:标识符的命名规则 (1)只能由字母、数字、下划线构成 (2)数字不能作为标识符的开头 (3)关键字不能作为标识符 选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3) 6.下列C语言用户标识符中合法的是(B)。 A)3ax B)x C)case D)-e2 E)union 选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1); 7.下列四组选项中,正确的C语言标识符是(C)。 A)%x B)a+b C)a123 D)123 选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2) 8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键

C语言练习题及答案解析三

一、单项选择题 1.下面不属于C语言的数据类型是【】。 A) 整型B) 实型C) 逻辑型D) 双精度实型 分析:和其它高级语言相比,C语言中没有逻辑型数据,也没有逻辑型变量。 本题正确答案为C。 语言中,下列属于构造类型的是【】。 A) 整型B) 实型C) 指针类型D) 结构体类型 分析:C语言中构造类型的数据有三种:数组、结构体和共用体,数组是同类型数据的集合,结构体是不同类型的数据集合。 本题正确答案为D。 3.下列字符串不符合标识符规定的是【】。 A) SUM B) sum C) 3cd D) end 分析:标识符规定只能由26个英文字母(大小写均可),数字0~9和下划线组成,且不能以数字开头,题中的3cd不符合规定。 本题正确答案为C。 4.下面能正确表示八进制数的是【】。 A) 0x16 B) 029 C) -114 D) 033 分析:选项A)以0x开头是十六进制数,选项B)虽然是0开头,但出现了数字9,选项C)是十进制数。 本题正确答案为D。 5.下面四个选项中,均是合法实数的选项是【】。 A) B) C) D)-e5 分析:实数有两种表示形式:小数形式和指数形式,小数形式必须有小数点,指数形式中,字母e 之前必须有数字,e之后必须是整数。选项A)中的"",选项C)中的"",选项D)中的"-e5"均是不合法的。 本题正确答案为B。 语言中,字符型数据在内存中存储形式是【】。 A) 原码B) 反码C) 补码D) ASCII码 分析:C语言中int型数据是以补码形式存放的,字符型数据是以ASCII码形式存放的。 本题正确答案为D。 7.下列正确的字符型常量是【】。 A) "a" B) ′\\\\′ C) "\\r" D) 277 分析:字符常量的定义是用单引号括起来的一个字符,A和C的定界符不对,D超过了char型数据的表示范围,′\\\\′是转义字符。 本题正确答案为B。 8.若有说明语句char ch1=′\\x41′;则ch1【】。 A) 包含4个字符B) 包含3个字符C) 包含2个字符D) 包含1个字符 分析:"\\x41"中的"41"是十六进制数,即十进制的65,题中ch1存放的65是字母"A"的ASCII码。 本题正确答案为D。 9.下列程序段输出的字符串长度为【】。 printf("\\\\aaa\\′ccc\\bddd\\""); A) 11 B) 12 C) 13 D) 17 分析:\\\\、\\′、\\b和\\"为转义字符,程序输出结果为:\\aaa′ccddd"。 本题正确答案为A。 10.下列运算符中,要求运算对象必须是整数的是【】。 A) / B) * C) % D) ! 分析:题目中"/"、"*"、"!"的运算对象既可以整数,也可以是实数,只有取余数运算符"%"要求运算对象必须是整数。 本题正确答案为C。 11.下面合法的赋值语句是【】。 A) x+y=2002; B) ch="green"; C) x=(a+b)++; D) x=y=0316; 分析:赋值号左端不能为表达式,选项A)是错的;赋值号不能将字符串赋给某个变量,选项B)也是错的;增量运算符“++”不能用于表达式,选项C)也是错的。 本题正确答案为D。 12.已知a为int型,b为double型,c为float型,d为char型,则表达式a+b*c-d/a结果的类型为

c语言练习题带详解答案

一、编程题 1.输入2个整数,求两数的平方和并输出。 #include int main(void) { intt a ,b,s; printf("please input a,b:\n"); scanf("%d%d”,&a,&b); s=a*a+b*b; printf("the result is %d\n",s); return 0; } 2. 输入一个圆半径r,当r>=0时,计算并输出圆的面积和周长,否则,输出提示信息。 #include #define PI 3.14 int main(void)

{ double r ,area , girth; printf("please input r:\n"); scanf("%lf",&r); if (r>=0) { area =PI*r*r; girth =2*PI*r ; printf("the area is %.2f\n", area); printf("the girth is %.2f\n", girth);} else printf("Input error!\n"); return 0; } 3、已知函数y=f(x),编程实现输入一个x值,输出y值。 2x+1 (x<0) y= 0 (x=0)

2x-1 (x>0) #include void main() { int x,y; scanf(“%d”,&x); if(x<0) y=2*x+1; else if(x>0) y=2*x-1; else y=0; printf(“%d”,y); } 4.从键盘上输入一个百分制成绩score,按下列原则输出其等级:score≥90,等级为A;80≤score<90,等级为B;70≤score<80,等级为C;60≤score<70,等级为D;score<60,等级为E。 #include void main(){ int data;

C语言基础练习题(含答案)

目录

第1-3章 C语言基础知识习题 1 选择题 1. 以下不是C语言的特点的是()。 A、语言简洁紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件操作 D、C语言移植性好 2.下列字符序列中,不可用作C语言标识符的是()。 A.abc123 B.no.1 C._123_ D._ok 3.正确的C语言标识符是()。 A._buy_2 B.2_buy C.?_buy D.buy? 4. 请选出可用作C语言用户标识符的一组标识符()。 A.void B.a3_b3 C.For D.2a define _123 -abc DO WORD IF Case sizeof 5. 下列符号中,不属于转义字符的是()。 A.\\ B.\0xAA C.\t D.\0 6.不属于C语言关键字的是()。 A.int B.break C.while D.character 7.是C语言提供的合法关键字的是()。 A.Float B.signed C.integer D.Char 8.以下不能定义为用户标示符的是()。 A.scanf B.Void C._3com_ D.int 9.一个C程序是由()。 A.一个主程序和若干子程序组成 B.一个或多个函数组成 C.若干过程组成 D.若干子程序组成 10. C语言程序的基本单位是()。 A.程序行 B.语句 C.函数 D.字符 11.下列说法中,错误的是()。 A.每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号B.每个函数都有一个函数头和一个函数体,主函数也不例外 C.主函数只能调用用户函数或系统函数,用户函数可以相互调用 D.程序是由若干个函数组成的,但是必须有、而且只能有一个主函数 12.以下说法中正确的是()。 A.C语言程序总是从第一个定义的函数开始执行 B.在C语言程序中,要调用的函数必须在main( )函数中定义 C.C语言程序总是从main( )函数开始执行

C语言经典编程练习题和答案详解入门必备

【程序1】 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。 2.程序源代码: #include “stdio.h” #include “conio.h” main() { inti,j,k; printf(“\n”); for(i=1;i<5;i++) /*以下为三重循环*/ for(j=1;j<5;j++) for (k=1;k<5;k++) { if (i!=k&&i!=j&&j!=k) /*确保i、j、k 三位互不相同*/ printf(“%d,%d,%d\n”,i,j,k); } getch(); } 【程序2】 题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高 于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提 成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于 40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于 100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数? 1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。 2.程序源代码: #include “stdio.h” #include “conio.h” main() { longinti; int bonus1,bonus2,bonus4,bonus6,bonus10, bonus; sc anf(“%ld”,&i); bonus1=100000*0. 1; bonus2=bonus1+100000*0.75; bonus4=bonus2+200000*0.5; bonus6=bonus4+200000*0.3; bonus10=bonus6+400000*0.15; if(i<=100000) bonus=i*0.1; else if(i<=200000) bonus=bonus1+(i-100000)*0.075; else if(i<=400000) bonus=bonus2+(i-200000)*0.05; else if(i<=600000) bonus=bonus4+(i-400000)*0.03; else if(i<=1000000) bonus=bonus6+(i-600000)*0.015; else bonus=bonus10+(i-1000000)*0.01;

C语言FOR循环练习题配解析

C语言F O R循环练习 题配解析 文件排版存档编号:[UYTR-OUPT28-KBNTL98-UYNN208]

实验五循环结构实验——f o r循环目的和要求: 1、掌握循环结构程序设计的方法 2、掌握简单循环程序设计方法 3、掌握for循环程序设计 实验题目: 1、求1+2+3+……+100的和,并输出。 #include <> main () { int a,b=0; a=1; for(;a<=100;a++) b=b+a; printf ("1+2+3+···+100=%d\n",b); } 2、利用for循环编程,输出如下图形: * * ** ** *** *** **** **** ***** *****

****** ****** ******* ******* ******** ******** (a)图 (b)图 A #include <> main() { int a,b; for (a=1;a<=8;a++) { for(b=1;b<=a;b++) printf ("\*"); printf ("\n"); } } B #include <> main() { int a,b; for (a=1;a<=8;a++) {

for (b=1;b<=8-a;b++) printf (" "); for(b=1;b<=a;b++) printf ("\*"); printf ("\n"); } } 3、判断输入的某个数是否为素数,若是,输出YES,否则输出NO. #include <> main () { int a,b,c=1; printf ("请输入一个数(正整数)\n"); scanf ("%d",&a); if (a==1) printf ("NO\n"); else { if (a==2) printf ("YES\n"); else { for(b=2;b<=(a-1);b++)

C语言练习题及参考答案

练习题1及参考答案 1. 单项选择题 (1)以下并非C语言的特点的是。 A. C语言简洁和紧凑 B. 能够编制出功能复杂的程序 C. C语言可以直接对硬件进行操作 D. C语言移植性好 【答】B (2)一个C程序的执行是从。 A. main()函数开始,直到main()函数结束 B. 第一个函数开始,直到最后一个函数结束 C. 第一个语句开始,直到最后一个语句结束 D. main()函数开始,直到最后一个函数结束 【答】A (3)在C程序中,main()的位置。 A. 必须作为第一个函数 B. 必须作为最后一个函数 C. 可以任意 D. 必须放在它所调用的函数之后 【答】C (4)一个C程序是由。 A. 一个主程序和若干子程序组成 B. 一个或多个函数组成 C. 若干过程组成 D. 若干子程序组成 【答】B (5)下列说法正确的是。 A. 在执行C程序时不是从main()函数开始的 B. C程序书写格式限制严格,一行内必须写一个语句 C. C程序书写格式比较自由,一个语句可以分行写在多行上 D. C程序书写格式严格要求一行内必须写一个语句,并要求行号 【答】C 2. 填空题 (1)一个C源程序至少有①个main()函数和②个其他函数。【答】①一②若干 (2)任何C语句必须以结束。 【答】分号 (3)C语言源程序的基本单位是。 【答】函数 (4)C编译程序的功能是。

【答】将C源程序编译成目标代码

练习题2及参考答案 1. 单项选择题 (1)以下字符串为标识符的是。 A. _MY B. 2_2222 C. short D. LINE 5 【答】A (2)下列符号可以作为变量名的是。 A. +a B. *p C. _DAY D. next day 【答】C (3)设c是字符变量,则以下表达式正确的是。 A. c=666 B. c='c' C. c="c" D. c="abcd" 【答】B (4)23+'m'+3.6-123.45/'b'的结果是型数据。 A. char B. double C. int D. long int 【答】3.6和123.45均为double型,运算结果也是double型。本题答案为B。 (5)若变量已正确赋值,以下符合C语言语法的表达式是。 A. a=a+7; B. a=7+b+c,a++ C. int(12.3%4) D. a=a+7=c+b 【答】选项A错误,以分号结尾是一个语句而不是表达式;选项B正确,是一个逗号表达式;选项C错误,因为%求模运算的两个运算数必须均为整数;选项D错误,给一个表达式(a+7)而非变量赋值是不正确的。本题答案为B。 (6)整型变量x=1,y=3,经下列计算后,x的值不等于6的表达式是。 A. x=(x=1+2,x*2) B. x=y>2?6:5 C. x=9-(--y)-(--y) D. x=y*(int)(4.8/2) 【答】选项A的计算过程——x=1+2=3,再计算x=x*2=6;选项B的计算过程——y>2为真,x=6;选项C的计算过程——式中有两个--运算,最后y=1,x=9-1-1=7;选项D的计算过程——x=y*(int)(4.8/2)=y*2=6。本题答案为C。 (7)若定义 int m=7,n=12; 则能得到值为3的表达式是。 A. n%=(m%=5) B. n%=(m-m%5) C. n%=m-m%5 D. (n%=m)-(m%=5) 【答】A、B、C、D选项各表达式的值分别是0、2、2、3。本题答案为D。 (8)以下程序的运行结果是。

C语言习题及答案

第1题(2.0分)题号:97 难度:中第1章 以下不正确的叙述是()。 A:在C程序中所用的变量必须先定义后使用 B:程序中,APH和aph是两个不同的变量 C:若a和b类型相同,在执行了赋值语句a=b;后b中的值将放入a中,b中的值不变D:当输入数值数据时,对于整型变量只能输入整型值;对于实型变量只能输入实型值 答案:D 第2题(2.0分)题号:204 难度:中第10章 在下列程序段中,枚举变量c1,c2的值依次是()。 enum color {red,yellow,blue=4,green,white} c1,c2; c1=yellow;c2=white; printf("%d,%d\n",c1,c2); A:1,6 B:2,5 C:1,4 D:2,6 答案:A 第3题(2.0分)题号:601 难度:中第2章 下面四个选项中,均是不合法的浮点数的选项是()。 A:160. 0.12 e3 B:123 2e4.2 .e5 C:-.18 123e4 0.0 D:-e3 .234 1e3 答案:B 第4题(2.0分)题号:621 难度:中第3章 printf函数中用到格式符%5s,其中数字5表示输出的字符串占用 5列,如果字符串长度大于5,则输出按方式()。 A:从左起输出该字符串,右补空格 B:按原字符长从左向右全部输出 C:右对齐输出该字串,左补空格 D:输出错误信息 答案:B 第5题(2.0分)题号:694 难度:中第3章 以下叙述正确的是()。 A:可以把define和if定义为用户标识符

B:可以把define定义为用户标识符,但不能把if定义为用户标识符 C:可以把if定义为用户标识符,但不能把define定义为用户标识符 D:define和if都不能定义为用户标识符 答案:B 第6题(2.0分)题号:575 难度:中第4章若有条件表达式(exp)?a++:b--,则以下表达式中能完全等价于 表达式(exp)的是()。 A:(exp==0) B:(exp!=0) C:(exp==1) D:(exp!=1) 答案:B 第7题(2.0分)题号:208 难度:中第4章下列各m的值中,能使m%3==2&&m%5==3&&m%7==2为真的是()。A:8 B:23 C:17 D:6 答案:B 第8题(2.0分)题号:632 难度:中第5章以下叙述正确的是()。 A:do-while语句构成的循环不能用其它语句构成的循环来代替. B:do-while语句构成的循环只能用break语句退出. C:用do-while语句构成的循环,在while后的表达式为非零时结束循环. D:用do-while语句构成的循环,在while后的表达式为零时结束循环 答案:D 第9题(2.0分)题号:506 难度:中第5章以下程序段的输出结果为()。 for(i=4;i>1;i--) for(j=1;j

C语言基础练习练习题复习(带详解答案).doc

精品文档 一单项选择题 1.(A)是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 2.C语言程序从 C开始执行。 A) 程序中第一条可执行语句 B) 程序中第一个函数 C) 程序中的main函数 D) 包含文件中的第一个函数 3、以下说法中正确的是(C)。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是(B)。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C)。 A.-a1 B.a[i] C.a2_i D.int t 5~8题为相同类型题 考点:标识符的命名规则 (1)只能由字母、数字、下划线构成 (2)数字不能作为标识符的开头 (3)关键字不能作为标识符 选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3) 6.下列C语言用户标识符中合法的是( B)。 A)3ax B)x C)case D)-e2 E)union 选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1); 7.下列四组选项中,正确的C语言标识符是(C)。 A) %x B) a+b C) a123 D) 123

选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2) 8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while 为关键字,不满足(3) 9.C语言中的简单数据类型包括(D)。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是C。 A)2.5 B)2 C)1 D)3 详见教材P52~53. %为求余运算符,该运算符只能对整型数据进行运算。且符号与被模数相同。5%2=1; 5%(-2)=1;(-5)%2=-1;(-5)%(-2)=-1; /为求商运算符,该运算符能够对整型、字符、浮点等类型的数据进行运算,5/2=2 11.如果int a=3,b=4;则条件表达式"a

C语言练习题集(带答案解析)

1. ( A )是构成C 语言程序的基本单位。 A 、函数 B 、过程 C 、子程序 D 、子例程 2. C 语言程序从 _____ C ______________ 开始执行。 A ) 程序中第一条可执行语句 B )程序中第一个函数 C )程序中的main 函数 D )包含文件中的第一个函数 3、以下说法中正确的是( C )。 A 、 C 语言程序总是从第一个定义的函数开始执行 B 、 在 C 语言程序中,要调用的函数必须在 main ()函数中定义 C 、 C 语言程序总是从 main ()函数开始执行 D 、 C 语言程序中的 main ()函数必须放在程序的开始部分 4. 下列关于C 语言的说法错误的是( B ) 。 A ) C 程序的工作过程是编辑、编译、连接、运行 B ) C 语言不区分大小写。 C ) C 程序的三种基本结构是顺序、选择、循环 D ) C 程序从main 函数开始执行 5. 下列正确的标识符是(C )。 A. -a1 B.a[i] C.a2_i 6. 下列C 语言用户标识符中合法的是( B )。 A)3ax B)x C)case D)-e2 E)u nion 7. 下列四组选项中,正确的 C 语言标识符是(C )。 A ) %x B ) a+b C ) a123 D ) 8、 下列四组字符串中都可以用作 A 、print _3d db8 aBc B C 、str_1 Cpp pow while D 9. C 语言中的简单数据类型包括( A 、整型、实型、逻辑型 C 、整型、字符型、逻辑型 C 语言程序中的标识符的是( A ) 、I\am one_half start$it 3pai 、Pxq My->book line# His.age D )。 B 、整型、实型、逻辑型、字符型 D 、整型、实型、字符型 10.在C 语言程序中,表达式 5%2的结果是—C_ A)2.5 B)2 C)1 D)3 11. 如果int a=3,b=4 ;则条件表达式"a

相关文档
相关文档 最新文档