当前位置:文档之家› c语言练习题(2-3)

c语言练习题(2-3)

c语言练习题(2-3)
c语言练习题(2-3)

第二章练习题

—.选择题

1.以下选项中正确的整型变量是

A 12.

B -20

C 1,000

D 4 5 6

2.以下选项中正确的实型变量

A 0

B 3.1415

C 0.329

D .871

3.以下选项中不正确的实型变量

A 2.607

B 0.8103e 2

C -77.77 D456e-2

4.不合法的用户标示符

A abc.c

B file

C Main

D PRINTF

5.不合法的用户标示符

A _123

B printf

C A$

D Dim

6.C语言中运算对象必须是整型的运算符

A %

B /

C !

D **

7.可在c程序中用作用户标示符的一组是

A void

B as_b3

C For

D 2c

define _123 -abc DO

WORD If case SIG

8.若变量以正确定义并赋值,符合c语言语法表达式的是

A a=a+7;

B a=7+b +c ,a++

C int (12.3%4)

D a=a+7=c+b

9.以下叙述正确的是

A a是实型变量,C允许自由赋值 a=10,但不可以这样说:实型变量中允许存放整型值

B 在赋值表达式中,赋值号左边既可以是变量也可以是任意表达式

C执行表达式a=b后,在内存中a和b存储单元中的原有值都将改变,a的值已有原有值改变为b的值,b的原有值变为0

D 已有a=3,b=5,当执行了表达式a=b,b=a之后使a的值变为5,b的值变为3

10.以下叙述正确的是

A 在c程序中无论是整数还是实数,只要在允许的范围内都能准确无误的表示

B c程序由主函数组成

C c程序由若干函数组成

D c程序只允许包含一个函数

11.VC6.0中int 类型变量所占字节数是

A 1

B 2

C 3

D 4

12.合法的八进制数是

A 0

B 028

C -077

D 01.0

13.不合法的十六进制

A oxff

B 0Xabc

C 0x11

D 0x19

二填空

1.若k为整型变量且赋值11.请写出运算k++后的表达式

的值____和变量k的值____ 2.若x为double型变量,请写出运算x=3.2,++x后的表

达式的值___和变量x的值____

3.函数体由符号____开始,到符号____结束。函数体内的

前面是____部分,后面是___部分

4.C语言中的标示符可分为__ ,___和预定义标识符三类。

5.在c语言程序中,用关键字___定义基本整型变量,用

关键字___定义单精度实型变量,用关键字___定义双精

度实型变量

6.把a1,a2定义成双精度实型变量,并赋值 1的定义语句

是____

7.C程序中定义的变量,代表内存中的___

8.表达式3.5+1/2的计算结果是___

9.对数学表达式,写出三个等价的c语言表达式

_____

10.表达式s=10应当读作____

三上机改错

1。#include stdio.h

main(); /*main function*/

float r,s;/*/*r is radius*/,/*s is area of circular*/*/

r=5.0;

s=3.14159*r*r;

printf(“%f\n”,s);

2.main /*main function */

{

float a,b,c,v; /*a,b,c are sides,v is volume of cube*/ a=2.0;b=3.0;c=4.0;

v=a*b*c;

printf(“%f\n”,v);

}

第三章练习题

一.选择题

1.若a ,b,c都是int型变量且初值为0,以下选项中不正确的赋值语句

A a=b=c=100

B d++

C c+b

D d=(c=22)-(b++)

2.下列选项中不是C语句的是

A {int I;i++;printf(“%d\n”,i);}

B ;

C a=5,c=10

D {;}

3.合法的c语言赋值语句

A a=b=58

B k=int(a+b)

C a=58,b=58

D --i

4.有以下程序

#include

main(0

{

int x=10,y=3;

printf(“%d\n”,y=x/y);

}

执行后的输出结果

A 0

B 1

C 3

D 不确定的值

5.若变量已正确定义为int型,要给a,b,c输入数据,正确的输入语是

A read(a,b,c)

B scanf(“%d%d%d”,a,b,c);

C scanf(“%D%D%D”,&a,%b,%c);

D scanf(“%d%d%d”,&a,&b,&c);

6.若变量已正确定义为float型,要通过输入语句:scanf(“%f % f %f ”,&a,&b,&c);给a赋值11.0,b赋值

22.0,c赋值33.0,不正确的输入形式

A 11

B 11.0,22.0,33.0

C 11.0

D 11 22

22 22.0,33.0 33

33

7.若变量a,b,t已正确定义要将a和b中的数进行交换,以下选项中不正确的语句

A a=a+b,b=a-b,a=a-b;

B t=a,a=b,b=t ;

C a=t;t=b;b=a;

D t=b;b=a;a=t;

8.若有正确定义语句:

double x=5.16894;

语句printf(“%f\n”,(int)(x*1000+0.5)/(double)1000); 输出结果是

A 输出格式说明与输出不匹配,输出无定值

B 5.170000

C 5.168000

D 5.169000

9.若有以下程序段:

int c1=1,c2=2,c3;

c3=c1/c2;

printf(“%d\n”,c3);

执行后的输出结果是

A 0

B 1、2

C 0.5

D 1

11.若有以下程序段:

Int a=0,b=0,c=0;

c=(a-=a-5),(a=b,b+3);

printf(““%d,%d,%d”,a,b,c”);

执行后的输出结果是

A 3,0,-10

B 0,0,5

C -10 ,3, -10

D 3,0,3

二.填空题

1.若有以下定义,请写出以下程序段中输出语句执行后

的输出结果____

int i=-200,j=2500;;

printf(“(1)%d,%d”,i,j);

pintf(“(2)i=%d,j=%d\n”,i,j); printf(“(3)i=%d\nj=%d\n”,i,j);

2.变量i,j,k已正确定义为int 型并均有初值0,用以下语句进行输入时:scanf(“%d”,&i);scanf(“%d”,&j);scanf(“%d”,&k); 从键盘输入:

12.3(代表Enter键)

则变量i,j,k的值分别是__,___,___

3.复合语句在语法上被认为是___。空语句的形式是___.

4.C语句的最后用_____结束。

5.以下程序段要求通过scanf语句给变量赋值。写出运行时给k输入100,给a输入15.81,给x输入1.89234时的三种可能的输入形式_____,_____,_____

三编程和改错

1.以下程序多处错误。若指定必须按下面的形式输入

数据,并且必须按下面指定的形式输出数据,请对

该程序做相应的修改。

main

{

double a,b,c,s,v;

printf(input a,b,c:\n);

scanf(“%d %d %d”,a,b,c);

s=a*b;

v=a*b*c;

printf(““%d %d %d”,a,b,c”);

printf(“s=%f\n”,s,”v=%d\n”,v);

}

当程序执行时,屏幕的显示和要求输入形式如下:input a,b,c:2.0 2.0 3.0

a=2.000000,b=2.000000,c=3.000000

s=4.000000 v=12.000000

2.编写程序,把560分钟换算成用小时和分钟计算,

然后进行输出

3.编写程序,输入两个整数:1500和350,求出他们

的商和余数并进行输出

4.编写程序,读入三个双精度数,求它们的平均值并

保留此平均值小数点后一位数,对小数点后第二位

数进行四舍五入,最后输出结果

5.编写程序,读入三个整数给a,b,c,然后交换它们

中的数,把a中原来的值给b,把b中原来的值给

c,把c中原来的值给a,然后输出a,b,c

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语言基础练习题(含答案)

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

第一章C语言基础知识 1.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_b3C.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

B .一组机器语言指令 C .将C 源程序编译成目标程序 D .由制造厂家提供的一套应用软件 14.以下选项中,合法的用户标识符是( )。 A .long B ._2abc C .3dmax D .A.dat 15.以下选项中,合法的实型常数是( )。 A .5E2.0 B .E-3 C .2E0 D .1.3E 16.已知大写字母A 的ASCII 码值是65, 小写字母a 的ASCII 码是97,则用八进制表示的字符常量’\101’是( )。 A .字符A B .字符a C .字符c D .非法的 常量 17.以下选项中, 合法转义字符的选项是( )。 A .’\\’ B .’\018’ C .’xab ’ D .’\abc ’ 18.以下选项中,正确的字符常量是( )。 A .”F ” B .’\\’’ C .’W ’ D .’’ 19.以下选项中可作为C 语言合法整数的是 A .10110 B B .0386 C .0Xffa D .x2a2 20.下列变量定义中合法的是 A .short _a=1-.le-1; B .double b=1+5e2.5; C .long do=0xfdaL; D .float 2_and=1-e-3; 21.与数学式子1 29 x x n 对应的C 语言表达式是( )。 A .9*x^n/(2*x-1) B .9*x**n/(2*x-1) C .9*pow(x,n)*(1/(2*x-1)) D .9*pow(n,x)/(2*x-1) 22.若有代数式cd ab 3,则不正确的C 语言表达式是( )。

c语言if语句练习题

c语言if语句练习题 1、输入一个学生成绩,判断并输出该学生是否及格。 #include main { int a; printf ; scanf ; if printf ; else switch { case 0: case 1: case: case: case: case: printf ; break; 为B\n”); } }

2、输入三角形的三条边长,求三角形的周长和面积,若不能构成三角形,输出提示。拓展练习:根据用户输入的三角形的三条边长判定是何种三角形。 提示:正三角形——三边相等; 等腰三角形——三边中有两边相等; 直角三角形——两边的平房和等于第三边平方。 case: printf; break; case: printf; break; case: printf; #include #include main { float a,b,c,d; \n”); printf ; d=/2; if { if {printf ; printf ; } else { if { printf ; printf **),a+b+c); } else { if

{ printf ; printf **),a+b+c); } else { printf ; printf **),a+b+c); } } } } else printf ; } 3、输入3个分别表示箱子长、宽、高的整数值,判断并输出该箱子是正方体还是长方体。 ? 马克思手稿中有一道趣味数学题:有30个人,其中有男人、女人和小孩,在一家饭馆里吃饭 共花了50先令,每个男人各花3先令,每个女人各花2先令,每个小孩各花1先令,问男人、女人和小孩各有几人?

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 6.下列C语言用户标识符中合法的是(B)。 A)3ax B)x C)case D)-e2 E)union 7.下列四组选项中,正确的C语言标识符是(C)。 A)%x B)a+b C)a123 D)123 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 9.C语言中的简单数据类型包括(D)。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是C。 A)2.5 B)2 C)1 D)3 11.如果int a=3,b=4;则条件表达式"a

c语言if的用法

c语言if的用法 条件condition可以是任何返回布尔值的表达式。 else子句是可选的。 if语句的执行过程如下:如果条件为真,就执行if的对象(statement1);否则,执行else的对象(statement2)。 任何时候两条语句都不可能同时执行。 考虑下面的例子:int a,b;if(a 任何情况下都不可能使a和b 都被赋值为0。 记住,直接跟在if 或else语句后的语句只能有一句。 如果你想包含更多的语句,你需要建一个程序块,如下面的例子:int bytesAvailable;if (bytesAvailable > 0) {ProcessData();bytesAvailable -= n;} elsewaitForMoreData();这里,如果变量bytesAvailable 大于0,则if 块内的所有语句都会执行。 嵌套if 语句嵌套(nested)if语句是指该if语句为另一个if或者else语句的对象。 在编程时经常要用到嵌套if语句。 当你使用嵌套if语句时,需记住的要点就是:一个else语句总是对应着和它同一个块中的最近的if语句,而且该if语句没有与其他else 语句相关联。 下面是一个例子:if(i == 10) {if(j 100) c = d; // this if iselse a = c; // associated with this else}else a = d; // this else refers to if(i ==

10)如注释所示,最后一个else语句没有与if(j 最后一个else语句对应着if(i==10)。 内部的else语句对应着if(k>100),因为它是同一个块中最近的if 语句。 if-else-if 阶梯基于嵌套if语句的通用编程结构被称为if-else-if 阶梯。 它的语法如下:if(condition)statement;else if(condition)statement;else if(condition)statement;elsestatement;条件表达式从上到下被求值。 一旦找到为真的条件,就执行与它关联的语句,该阶梯的其他部分就被忽略了。 如果所有的条件都不为真,则执行最后的else语句。 最后的else语句经常被作为默认的条件,即如果所有其他条件测试失败,就执行最后的else语句。 如果没有最后的else语句,而且所有其他的条件都失败,那程序就不做任何动作。 . 下面的程序通过使用if-else-if阶梯来确定某个月是什么季节。 // Demonstrate if-else-if statements.main() {int month = 4; // Aprilif (month == 12 || month == 1 || month == 2)printf ( "Winter");else if (month == 3 || month == 4 || month == 5)printf ("Spring");else if (month == 6 || month == 7 || month == 8)printf ( "Summer");else if (month == 9

C语言试题与答案

大学C语言考试题库 第1章 C语言概述习题 1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. A B. B C. D D. E (2) 在 C 语言中,每个语句必须以 D 结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (3) 标识符和关键字间,要用 C 隔开。 A. 回车符 B. 冒号 C. 空格 D. 分号 (4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D.自动保存源文件 (5) 下列说法中正确的是( B )。 A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入 B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C. 由于C 程序是高级语言程序,因此输入后即可执行 D. 由于 C 程序是高级语言程序,因此它由命令组成 (6) 下列说法中正确的是( A )。 A. C 语言程序由主函数和 0 个或多个函数组成 B. C 语言程序由主程序和子程序组成 C. C 语言程序由子程序组成 D. C 语言程序由过程组成 (7) 下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 2. 填空题 (1) C 语言只有 32 个关键字和 9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系

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

欢迎阅读 一、编程题 1.输入2个整数,求两数的平方和并输出。 #include int main(void) { intt a ,b,s; 2. 信息。 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 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;

char grade; printf("Please enter the score:"); scanf("%d”, &data); switch(data/10) { case 10: } 5. float fee; printf(“please input hour:\n”); scan f(“%d”,&hour); if(hour<=10) fee=30;

else if(hour>=10&&hour<=50) fee=3*hour; else fee=hour*2.5; printf(“The total fee is %f”,fee); } 6. } 7、编程序实现求1-10之间的所有数的乘积并输出。 #include void main( ) { int i; long sum=1;

c语言if语句的练习题答案

c语言i f语句的练习题答 案 Prepared on 24 November 2020

1、编写程序输入a和b,求a和b的余数和商。 #include<> voidmain() { inta,b; scanf("%d%d",&a,&b); printf("商为%d余数为%d",a/b,a%b); } 2、输入一个整型数据,分别求出各位数字。如:469,则个位数是9,十位数 是6,百位数是4。 #include<> voidmain() {inta,m=0; intt,t1,t2,t3,t4; scanf("%d",&a); if(a<0||a>99999) printf("输入数据超出范围\n"); elseif(a>=0&&a<10) {m=1; printf("该数是%d位数,其个位数为%d\n",m,a); } elseif(a>=10&&a<100) { m=2; t=a%10; a=a/10; printf("该数是%d位数,其个位数为%d十位数为%d\n",m,t,a); } elseif(a>=100&&a<1000) { m=3; t=a%10; t1=(a/10)%10; t2=a/100; printf("该数是%d位数,其个位数为%d十位数为%d百位数为%d\n",m,t,t1,t2);

elseif(a>=1000&&a<10000) { m=4; t=a%10; t1=a/10%10; t2=a/100%10; t3=a/1000; printf("该数是%d位数,其个位数为%d十位数为%d百位数为%d千位数字 为%d\n",m,t,t1,t2,t3); } elseif(a>=10000&&a<100000) { m=5; t=a%10; t1=a/10%10; t2=a/100%10; t3=a/1000%10; t4=a/10000; printf("该数是%d位数,其个位数为%d十位数为%d百位数为%d千位数字为%d 万位数字为%d\n",m,t,t1,t2,t3,t4); } } 以上写法太繁琐了,如果学习了循环,则简单很多。 #include<> voidmain() { inta,b; intn=0; scanf("%d",&a); while(a)//while(a!=0) {n++;//n用来统计数字a是几位数,n的初值必须为0 b=a%10; a=a/10;//a/=10; printf("%d",b);//输出a的各位数字 } printf("a的位数为%d",n);//此语句必须写在循环体的外面

C语言思考题

1、机器语言:机器语言及其指令是计算机能够直接识别的执行的一组二进制代码。一条机器指令通常由操作码和操作数两部分构成。 2、汇编指令:是机器语言的符号化表示MOV 3、汇编语言:由汇编指令、汇编伪指令及汇编语言的语法规则组成。 4、汇编语言源程序:用汇编语言编写的程序 5、汇编程序:把汇编语言源程序翻译成目标程序的加工程序MASM 6、二、十、十六进制转换(掌握<256)练习1:117=(1110101)B练习2:1000 1011 B=(139)D练习3:1011 1000 0000 0101 B=(B805)H 7、机器数:是指计算机中的数据,可以分为无符号数和有符号数字长为N位时无符号数表示范围0≤N≤2N-1 当N=8时0≤N≤255 8、原码(8位):最高位为符号位(正数用0表示,负数用1表示),其他位为数值位 如X=+45=+0010 1101B [X]原=0010 1101B 如X=-45=-0010 1101B [X]原=1010 1101B 9、补码(8位):正数的补码与原码相同,负数的补码是将符号位取1,数值位逐位取反,未位加1。如X=+45=+0010 1101B [X]补=0010 1101B 如X=-45=-0010 1101B [X]补=1101 0011B 10、补码运算:是指对一个补码表示的数按位求反后再在末尾加1,可以得到与此数相应的符号相反的数的补码。例、已知[117]补=0111 0101B,[-117]补=1000 1011B,对[117]补作补码运算。解:因为[117]补=0111 0101B,按位求反后得1000 1010B,末尾加1得1000 1011B=[-117]补。[X+Y]补=[X]补+[Y]补[X-Y]补=[X]补+[-Y]补 12、BCD码:BCD码用4位二进制数表示1位十进制数。常用8421BCD码例:写出十进制314所对应的BCD码 13、8086/8088CPU:16位微处理器和16位数据总线,20位地址总线(寻址空间为1MB)。8088微处理器内部16位数据,外部8位数据,也称准16位机。8086/8088CPU的组成(功能方面):运算器、控制器、寄存器组 14、寄存器是CPU内部临时存放数据的部件,速度比内存快。(1)数据寄存器4个16位寄存器AX,BX,CX,DX,每个寄存器还可以拆成2个8位寄存器使用。 AX累加器:算术运算寄存器,用于存放操作数或运算结果。I/O指令中通过AX与外部交换数据。在乘除运算中指定存放被乘数与被除数,系统功能调用号。AX累加器可以分为AH、AL分别使用。 BX基址寄存器:可作为通用寄存器使用。在计算内存地址是,常作基址寄存器,作为通用寄存器还可以分为BH、BL分别使用。 CX数据寄存器:可作为通用寄存器使用。在循环和串操作指令中作隐含计数器。作为通用寄存器还可以分为CH、CL分别使用。 DX数据寄存器:可作为通用寄存器使用。在I/O操作中,DX用来存放I/O端品地址。在乘除法运算中与AX组合一起存放双字型数据。作为通用寄存器还可以分为DH、DL 分别使用。 (2)变址寄存器(2 个16位):SI 源变址寄存器.DI 目的变址寄存器 BP基址寄存器:用于存放栈中的操作数的偏移地址。SP堆栈指针寄存器:用来指示栈顶的当前位置(偏移地址)。 IP 指令指针寄存器(程序计数器):用于存放下一条指令所在偏移地址。与CS配合,用来确定程序中下一条指令的物理地址。 15、PSW程序状态字寄存器(标志寄存器):8088微处理器使用16位中的9位设置了9个标志。标志位SF、OF、CF、ZF的含义0010 1001B+1110 1000B=1 0001 0001B CF=1 OF=0 SF=0 ZF=0 16、段地址寄存器:段表示一块内存空间(大小可变),最大为64K字节,最小为16字

194道C语言复习练习题及答案

C语言 程序设计复习参考练习题 语言程序设计复习参考练习题 程序设计复习参考练习题 ,在对应的字母处标记“√” 请在答案A、B、C、D中选出一个正确的答案 中选出一个正确的答案, 1. 一个C程序的执行是从【】。 A) 本程序的main函数开始,到main函数结束 B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C) 本程序的main函数开始,到到本程序文件的最后一个函数结束 D) 到本程序文件的第一个函数开始,到本程序的main函数结束 2. 一个C语言程序是由【】。 A) 一个主程序和若干子程序组成B) 函数组成 C) 若干过程组成D) 若干子程序组成 3. C语言规定,在一个源程序中,main函数的位置【】。 A)必须在最开始B)必须在系统调用的库函数的后面 C)可以在任何位置D)必须在最后 4. 在C语言中,数字0X26是一个【】进制数。 A) 二B) 八C) 十D) 十六 5. 设说明为int a[3]={1,2}, *p=a; 则*p与*(p+2)的值分别是【】。 A) 1和0B) 0和1 C) 1和2 D) 2和0 6. 设说明为int a=10; 执行语句a*=1+2+3; 后a的值是【】。 A) 15 B) 24 C) 33 D) 60 7. 为表示关系x≥y≥z,应使用C语言表达式【】。 A) (x>=y>=z) B) (x>=y)AND(y>=z) C) (x>=y)&&(y>=z) D) (x>=y)&(y>=z) 8. 说明语句:int a[][3]={1,2,3,4,5,6,7,8,9}; 则a数组的行数为【】。 A) 不确定B) 1 C) 2 D) 3 9. 以下程序时,从键盘输入25,13,10<回车>,则输出结果是【】。 main() { int a1, a2, a3; scanf("%d,%d,%d", &a1, &a2, &a3); printf("a1+a2+a3=%d\n", a1+a2+a3); } A) a1+a2+a3=48 B) a1+a2+a3=25 C) a1+a2+a3=10 D) 不确定

C语言练习题(带答案)-绝对经典题目不看后悔

1单选题 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语言课后习题答案(最终)

第0章习题 1. 将下列十进制数分别转化为二进制数、八进制数和十六进制数: (1)128 (2)511 (3)1024 (4)65535 (5)1048575 答: (1)10000000、200、80 (2)111111111、777、1FF (3)10000000000、2000、400 (4)1111111111111111、177777、FFFF (5)11111111111111111111、3777777、FFFFF 2. 将下列二进制数转化为十进制数和十六进制数: (1)1100110101B (2)101101.1011B 答: (1)821、335 (2)45.6875、2D.B 3. 写出下列数的原码、反码、补码:15、-20、-27/32 答: (1)00001111、00000000、00001111 (2)10010100、11101011、11101100 (3)1.1101100、1.0010011、1.0010100 4. 16位无符号定点整数的数值表示范围为多少?8位补码的表示范围是多少?16位补码的表示范围是多少? 答: 0~65535、-128~127、-32768~32767 5.1968年Dijkstra提出结构化程序设计的思想的原因是什么?简要回答结构化程序设计的经典定义。 答: 结构化程序设计概念的提出主要是源于程序结构的层次性与模块化使得构造出来的软件具有良好的可理解性和可维护性,随着软件规模的扩大与复杂性的提高,程序的可维护性成为程序设计者们关注的重要问题之一。 如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。 6.C程序在内存中存储在哪儿?计算机的内存空间是如何分区的?分区存放不同类型的数据的目的是什么? 答:

c语言第1章练习题答案

第一章 C语言概述练习题 一、选择题 1.C语言是一种( )。 A) 机器语言B) 汇编语言C) 高级语言 D) 低级语言 2.下列各项中,不是C语言的特点是( )。 A) 语言简洁、紧凑,使用方便B) 数据类型丰富,可移植性好 C) 能实现汇编语言的大部分功能D) 有较强的网络操作功能 3.下列叙述正确的是( )。 A) C语言源程序可以直接在DOS环境中运行 B) 编译C语言源程序得到的目标程序可以直接在DOS环境中运行 C) C语言源程序经过编译、连接得到的可执行程序可以直接在DOS环境中运行 D) Turbo C系统不提供编译和连接C程序的功能 4.下列叙述错误的是()。 A) C程序中的每条语句都用一个分号作为结束符 B) C程序中的每条命令都用一个分号作为结束符 C) C程序中的变量必须先定义,后使用 D) C语言以小写字母作为基本书写形式,并且C语言要区分字母的大小写 5.一个C程序的执行是从()。 A) 本程序的main函数开始,到main函数结束 B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C) 本程序文件的第一个函数开始,到本程序main函数结束 D) 本程序的main函数开始,到本程序文件的最后一个函数结束 6.以下叙述不正确的是()。 A) 一个C源程序必须包含一个main函数 B) 一个C源程序可由一个或多个函数组成 C) C程序的基本组成单位是函数 D) 在C程序中,注释说明只能位于一条语句的后面 7.C语言规定:在一个源程序中,main函数的位置( )。 A)必须在程序的开头B)必须在系统调用的库函数的后面 C)可以在程序的任意位置D)必须在程序的最后 8.一个C语言程序是由( )。 A)一个主程序和若干个子程序组成B) 函数组成 C) 若干过程组成D) 若干子程序组成 9.以下有4组用户标识符,其中合法的一组是()。 A) For B) 4d C) f2_G3 D) WORD -sub DO IF void Case Size abc define 10. 一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是 ()。

C语言中# ifdef和# elseif的使用技巧和注意事项

下面这几个宏是为了进行条件编译。一般情况下源程序中所有的行都参加编译。但是有时希望对其中一部分内容只在满足一定条件才进行编译,也就是对一部分内容指定编译的条件,这就是“条件编译”。有时,希望当满足某条件时对一组语句进行编译,而当条件不满足时则编译另一组语句。 条件编译命令最常见的形式为: #ifdef 标识符 程序段1 #else 程序段2 #endif 它的作用是:当标识符已经被定义过(一般是用#define命令定义),则对程序段1进行编译,否则编译程序段2。 其中#else部分也可以没有,即: #ifdef 程序段1 #denif 这里的“程序段”可以是语句组,也可以是命令行。这种条件编译可以提高C源程序的通用性。如果一个C源程序在不同计算机系统上运行,而不同的计算机又有一定的差异。例如,我们有一个数据类型,在Windows平台中,应该使用long类型表示,而在其他平台应该使用float表示,这样往往需要对源程序作必要的修改,这就降低了程序的通用性。可以用以下的条件编译: #ifdef WINDOWS #define MYTYPE long #else #define MYTYPE float #endif 如果在Windows上编译程序,则可以在程序的开始加上 #define WINDOWS 这样则编译下面的命令行: #define MYTYPE long 如果在这组条件编译命令之前曾出现以下命令行: #define WINDOWS 0 则预编译后程序中的MYTYPE都用float代替。这样,源程序可以不必作任何修改就可以用于不同类型的计算机系统。当然以上介绍的只是一种简单的情况,可以根据此思路设计出其它的条件编译。 例如,在调试程序时,常常希望输出一些所需的信息,而在调试完成后不再输出这些信息。可以在源程序中插入以下的条件编译段:

C语言练习题

实验二 顺序与分支程序设计 一.实验目的 1. 掌握程序中条件的设置方法; 2. 掌握顺序和if 分支结构程序的设计。 二.实验环境 1. 硬件:PII 以上计算机; 2. 软件:Windows 、Visual C++ 6.0; 3. 其它:一张软盘或者U 盘等可移动的存储设备。 三.实验内容 练习1.编写程序,求输入的3个整数中最大者。要求以P5例1.3为基础,结合本题稍作 修改。 运行结果示例: 练习2.编写程序,求函数 ??+ +=30sin 53x e x y π 的值。要求输入x ,程序即可输出y 的值。 要求:将π值定义为符号常量,例如:# define PI 3.14159 运行结果示例: 练习3.输入一字符,编程序判断输入字符的种类(字母、数字、其它)。

要求:利用if条件语句编程。 运行结果示例: 练习4.编写程序,实现下列分段函数的求值: | x | x<5 y = 3x2-2x+1 5≤x<20 x /5 x≥20 要求:利用if条件语句编程。 *练习5.编程序计算个人所得税。 ●个税的税率及速算扣除数(部分)规定: 不超过500元的,税率5%,速算扣除数为0; 超过500元至2000元的部分,税率10%,速算扣除数为25; 超过2000元至5000元的部分,税率15%,速算扣除数为125; 超过5000元至20000元的部分,税率20%,速算扣除数为375; 超过20000元的部分,税率25%,速算扣除数为1375。 ●个税计算公式: 应纳税额=(应纳税所得额-起征金额)×适用税率-速算扣除数 应纳税所得额=当月工资-保险支出 要求:利用if的嵌套语句编程。 运行结果示例:

C语言试题库(完整版)

C语言试题库 一、单项选择 第一章 C语言概述 (1)一个C程序的执行是从 A、本程序的MAIN函数开始,到MAIN 函数结束。 B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。 C、本程序的MAIN函数开始,到本程序的最后一个函数结束。 D、本程序文件的第一个函数开始,到本程序的MAIN函数结束。(2)以下叙述正确的是 A、在C程序中,MAIN函数必须位于程序的最前面。 B、 C程序的每行中只能写一条语句。 C、 C语言本身没有输入输出语句。 D、在对一个C程序进行编译的过程中,可发现注释中的拼写错误。(3) C语言规定,在一个源程序中,MAIN主函数的位置是在: A、必须在最前面。 B、必须在系统调用的库函数的后面 C、可以在任意位置。

D、必须在最后面 (4)一个C程序是由: A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 (5)以下叙述不正确的是: A、一个C源程序可由一个或多个函数组成 B、一个C源程序必须包含一个MAIN函数 C、 C程序的基本组成单位是函数 D、在C程序中,注释说明只能位于一条语句的后面 第二章数据类型、运算符与表达式 (1)若x, i, j, k都是int型变量,则计算下面表达式后,x的值为x=( i=4, j=16, k=32) A、4 B、16 C、32

D、52 (2)下列四组选项中,均不是C语言键字的选项是 A、define , IF, type B、getc, char, printf C、include, scanf, case E、 if, struct, type (3)下面四个选项中,均是不合法的用户标识符的选项是A、A,P_0,do B、float,1a0, _A C、b-a, goto, int D、_123, temp, INT (4)若有代数式3ae/bc,则正确的C语言表达式是A、a/b/c*e*3 B、3*a*e/bc C、3*a*e/b*c D、a*e/c/b*3 (5)已知各变量的类型说明如下:

(完整版)C语言语法基础练习题(含答案)

C语言语法基础练习题 一、选择题 1.C语言基本类型包括( ) A) 整型、实型、逻辑型B) 整型、实型、字符型、逻辑型 C) 整型、字符型、逻辑型D) 整型、实型、字符型 2.2.语言的字符型数据在内存中的存储形式是( ) A)原码B)补码C) 反码D) ASCII码 3.语言的整型数据在内存中的存储形式是( ) A)原码B)补码C) 反码D) ASCII码 4.sizeof(float)是。 A) 一个双精度型表达式B) 一个整型表达式 C) 一种函数表达式D) 一个不合法的表达式 5.已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2=‘A’+‘6’-‘3’后,c2中的值为。 A) D B) 68 C) 不确定的值D) C 6.以下叙述正确的是。 A) 在C程序中,每行只能写一条语句 B) 若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数 C) 在C程序中,%是只能用于整数运算的运算符 D) 在C程序中,无论是整数还是实数,都能被准确无误地表示 7.以下叙述不正确的是。 A) 在C程序中,逗号运算符的优先级最低 B) 在C程序中,MAX和max是两个不同的变量 C) 若a和b类型相同,在计算了赋值表达式a=b后,b中的值将放入a中,二b中的值不变 D) 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值 8.下面正确的字符常量是。 A) “c”B) ‘\\’’C) ‘’D) ‘K’ 9.下列四组选项中,均是合法转义字符的选项是。 A) ‘\”’‘\\’‘\n’ B) ‘\’‘\017’‘\”’ C) ‘\018’‘\f’‘xab’ D) ‘\\0’‘\101’‘xlf’ 10.下列四组选项中,均是不合法的用户标识符的选项是。 A) W P_0 do B) b-a goto int C) float la0 _A D) -123 abc TEMP 11.下列四组选项中,均不是C语言关键字的选项是。

C语言中if和goto的用法

C语言中,if是一个条件语句,用法 if(条件表达式) 语句 如果满足括号里面表达式,表示逻辑为真于是执行后面的语句,否则不执行(表达式为真则此表达式的值不为0,为假则为0,也就是说,如果括号里面不是一个判断表达式,你填了一个不是0的数字或其他,表示条件永远为真,一定执行后面的语句,反之,你填了一个0,则永远不会执行后面的语句)。 if后面的语句如果多于一句,可以放在{}里面作为复合语句, 例: int a=2,b=1; if(a>b) cout<<"a>b"<1 ,表达式a>b为真,于是执行后面的语句,输出a>b 这几个字符。 goto 是转向语句,按其英文含义就可理解 用法标号:语句; ...................... goto 标号; 或者 goto 标号; ..................... 标号:语句; 标号和goto必须包括处于同一个函数内标号的写法跟变量名一样不能和关键词相同,后面必须带冒号 当程序执行到goto这个语句时,程序就转跳到标号后面的语句去了 例 int x=1; biaohao: x=x+1; if(x<100) goto biaohao; cout<<"x=100"<

C中goto语句的用法 个人觉得goto用在内层循环中比较合适,用break只能跳出内层循环,而goto可以直接跳出最外层循环,在合理的地方使用就可以了。debian:/home/server# vi goto.c #include #include int main() { int i, j; for (j = 0; j < 3; j++) { for (i = 0; i < 10; i++) { printf("j: %d, i: %d\n", j, i); if (i == 3) goto last; } } last: printf("This is the last line\n"); return 0; } debian:/home/server# gcc -o goto goto.c

C语言循环结构练习题带答案

第5章循环结构程序设计 基本知识点 while语句的使用格式和注意事项 do-while语句的使用格式和注意事项 for语句的使用格式和注意事项 break和continue语句在循环语句中的应用 循环结构的嵌套 使用goto语句实现循环结构 穷举法程序设计方法 迭代程序设计方法 练习题5 1.单项选择题 (1)语句while(!e);中的条件!e等价于A。 ==0 !=1 !=0 D.~e (2)下面有关for循环的正确描述是D。 循环只能用于循环次数已经确定的情况 循环是先执行循环体语句,后判定表达式 C.在for循环中,不能用break语句跳出循环体 循环体语句中,可以包含多条语句,但要用花括号括起来 (3)C语言中D。 A.不能使用do-while语句构成的循环 语句构成的循环必须用break语句才能退出 语句构成的循环,当while语句中的表达式值为非零时结束循环语句构成的循环,当while语句中的表达式值为零时结束循环(4)C语言中while和do-while循环的主要区别是A。 的循环体至少无条件执行一次 的循环控制条件比do-while的循环控制条件严格 允许从外部转到循环体内 的循环体不能是复合语句 (5)以下程序段C。 intx=-1;

do { x=x*x; } while(!x); A.是死循环 B.循环执行二次 C.循环执行一次 D.有语法错误(6)下列语句段中不是死循环的是__C__。=100; while(1) { i=i%100+1; if(i==20)break; } (i=1;;i++) sum=sum+1; =0; do { ++k; }while(k<=0); =3379; while(s++%2+3%2) s++; (7)与以下程序段等价的是__A__。 while(a) { if(b)continue; c; } (a) (c) {if(!b)c;} {if(!b)break;c;} (c) (a) {if(b)c;} {if(b)break;c;} (8)以下程序的输出结果是_B___。

相关主题
文本预览
相关文档 最新文档