C语言总复习2
C语言复习题 (2)
C语言复习题一、选择题:1.以下不是C语言的特点的是( B )A.C语言简洁、紧凑 B.能够编制出功能复杂的程序C. C语言可以直接对硬件进行操作 D.C语言移植性好2. 以下不正确的C语言标识符是( D )。
A.ABC B.abc C.a_bc D.ab.c3.一个c程序的执行是从( A ).A.main( )函数开始,直到main( )函数结束B.第一个函数开始,直到最后一个函数结束C.第一个语句开始,直到最后一个语句结束D.main( )函数开始,直到最后一个函数结束4.以下不正确的语句(设有int p,q)是( D )。
A.P*=3; B.p/=q; C.p十=3; D.p&&=q5.下列四组选项中,均不是C语言关键字的选项是( A ).A.define B.getc C.include D.whileif char sanf gotype printf case pow6.下面四个选项中,均是合法整形常量的选项是( A ).A.160B.-0xcdfC.-01D.-0x48a-0xffff 01a 986,012 2e5011 0xe 0668 0x7. 下面四个选项中,均是不合法浮点数的选项是( B ).A.160.B.123C.-.18D.-e30.12 2e4.2 123e4 0.234e3 .e5 0.0 1e38. 若有代数式3ae/bc,则不正确的C语言表达式是( C )A.a/b/c*e*3B.3*a*e/b/cC.3*a*e/b*cD.a*e/c/b*39. 若以下变量均是整形,且num=sum=7;则计算表达式sUM=num++,sUM++,++num后sum 的值为(A ).A.7B.8C.9D.1010.若有定义:int a=7; float x=205 ,y=4.7; 则表达式x+a%3*(int)(x+y)%2/4的值是( A )。
A.2.500000B.2.750000C.3.500000D.0.00000011. s izeof(float)是( B )。
C语言程序设计复习题 (2)
C\C++程序设计复习题一、选择题1、一个C语言程序总是从( C )开始执行A) 书写顺序的第一个函数B) 书写顺序的第一条执行语句C) 主函数main()D) 不确定2、以下能正确定义二维数组的是( C )A.int a[][3];B.int a[][3]=2{2*3};C.int a[][3]={};D.int a[2][3]={{1},{2},{3,4}};3、设int x=3,y=4,z=5,则下列表达式中的值为0的是( D )A) …x‟&&‟y‟B) x||y+z&&y-z C) x<=y D) !((x<y)&&!z||1)4、执行以下程序段后,i的值是( C )int i=10;switch(i+1){ case 10: i++; break;case 11: ++i;case 12: ++i; break;default : i=i+1;}A) 11 B) 13 C) 12 D) 145、语句while(!e);中的条件!e等价于( B )A) e==0 B)e!=1 C) e!=0 D) 运行时出错6、下列数据中,为字符串常量的是(B )。
(A)…A‟(B)“house”(C)How do you do.(D)‟$abc‟7、用int a[4]={1,2}; 对数组进行初始化后,数组元素a[3]的值是( B )A) 随机值B) 0 C) 1 D) F8、在执行char str[10]=“china\0”;strlen(str)的结果是( B )A)5 B) 6 D) 7 D 99、若有定义,char *p=”computer”; 则语句printf(“%c”,*(p+2))运行结果是( B )A) 随机值B) m C)o D) omputer10、有以下程序( D )main(){ int i=0,x=0;for (;;){if(i==3||i==5) continue;if (i==6) break;i++;s+=i;};printf("%d\n",s);}程序运行后的输出结果是A.10B.13C.21D.程序进入死循环11、以下定义语句中正确的是( C )A.char a='A'b='B';B.float a=b=10.0;C.int a=10,*b=&a;D.float *a,b=&a;12、设有int x=11;则表达式(x++*l/3)的值为( B )。
C语言复习题 (2)
有以下程序#include <stdio.h>void main(){ int a=1,b=2,m=0,n=0,k;k=(n=b>a)||(m=a<b);printf("%d,%d\n",k,m);}程序运行后的输出结果是__C___。
A、0,0B、0,1C、1,0D、1,1 若变量c为char类型,能正确判断出c为小写字母的表达式是__D_____。
A. 'a'<=c<='z'B. (c>='a')||(c<='z')C. ('a'<=c)and('z'>=c)D. (c>='a')&&(c<='z')以下符合C语言语法的实型常量是__C____。
A、1.2E0.5B、3.14159EC、5E-3D、E15 若变量已正确定义,有以下程序段i=0;doprintf("%d, ",i);while(i++);printf("%d\n",i);其输出结果是____B__。
A. 0,0B. 0,1C. 1,1D. 程序进入无限循环若有以下程序段,int c1=1 ,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是____A__。
A、0B、0.5C、1D、2 以下选项中合法的字符常量是__B____。
A、"B"B、'\010'C、68D、D 有以下程序main(){ char a,b,c,d;scanf("%c,%c,%d,%d",&a,&b,&c,&d);printf("%c,%c,%c,%c\n",a,b,c,d);}若运行时从键盘上输入:6,5,65,66↙。
《C语言程序设计》复习题(2)-填空题
{ unsigned short x=65536; int y;
printf(“%d\n”, y=x);
} 50. 若有 int x=11; 则表达式 1/3*x++的值为 0 。
51. 执行语句 printf(“%d” , (a=2)&&(b=-2) ); 后的 输出是 1 。
52. 执行下列程序段后, 变量 i 的值是 16 。 int i=10 ; switch (i) { case 9: i+=0; case 10: i+=1; case 11: i+=2; default: i+=3; }
值为 -2 。 27. C语言中 标号 标识符无值、无类型且不需要声
明便可直接使用。 28. 若已声明: int x=1 , z=1 , y=1 , k ;则执行表达式
k=x++||++y&&++z后,变量k,x,y,z的值是 1,2,1,1 。
最小数是: 1000000000000000
29. 若用八进制常量表示C中的int型常1量0 (0160bits0)0
float x=25.0;
fwrite(&x,sizeof(float),1,fp);
48. 若有定义: int b=17; float a=4.5, c=6.5;
则表达式 a+(int)(b/3*(int)(a+c)/2)%4的值为 49. 下列程序执行后的输出结果是 0 。
7.5 。
main( )
是 for 。
35. 若一个函数不需要形式参数 , 则在定义函数时, 应使形式参数表为空或放置一个 void 。
C语言2
《C语言》总复习二一、选择题:1.一个C语言程序至少包含一个()函数。
A.printfB.scanfC.mainD.自定义2.一个完整的C程序包含一个或多个函数。
对于函数main() ,不正确的说法是()。
A.它是程序开始运行的第一个被调用的函数B.没有它的程序就无法运行C.它是唯一不缺少的函数D.又没有它都行3.C语言中,复合语句的构成是将一系列语句置于()。
A. begin和end 之间B.方括号“[]”之间C.圆括号“()”之间D.花括号“{}”之间4.不合法的C语言整型常量是()。
A.-0128 B.0x35 C.123L D.300005.以下程序段的输出结果是()。
int x=3; do { printf(“%3d”,x - =2); } while(!(--x));A.1B.3 0C.1 -2D.死循环6.设x,y均为整型常量,且x=10, y=3,则语句printf(“%d,%d\n”,x--,y--);的输出结果是()。
A.10,3B.9,3C.9,2D.10,27.以下程序的输出结果是()。
main(){ int a [4][4]={{1,3,5},{2,4,6},{3,5,7}};printf(“%d%d%d%d\n”,a[0][3],a[1][2],a[2][1],a[3][0]); }A.0650B.1470C.5430D.输出值不定8.以下程序的输出结果是()。
int a ,b; void fun() { a=100;b=200;}main(){int a=5,b=7;fun();printf(“%d,%d\n”,a,b);}A.100,200B.5,7C.200,100D.7,59.执行下面的程序后,a的值为()。
{int a ,b; for (a=1,b=1;a<=100;a++){ if(b>=20) {b+=3; continue;} b-=5; } }A.7B.8C.9D.1010.若有以下说明,int a [3][5]={{1,2},{3,4},{5,6}};则数值为6的表达式是()。
C语言基础知识总复习(考前突击专用)
C语言基础知识总复习(考前突击专用)总体上必须清楚的:1)程序结构是三种: 顺序结构、选择结构(分支结构)、循环结构。
2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择),有且只有一个main函数。
3)计算机的数据在电脑中保存是以二进制的形式. 数据存放的位置就是他的地址.4)bit是位是指为0 或者1。
byte是指字节, 一个字节 = 八个位.概念常考到的:1、编译预处理不是C语言的一部分,不占运行时间,不要加分号。
C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。
2、define PI 3.1415926; 这个写法是错误的,一定不能出现分号。
3、每个C语言程序中main函数是有且只有一个。
4、在函数中不可以再定义函数。
5、算法:可以没有输入,但是一定要有输出。
6、break可用于循环结构和switch语句。
7、逗号运算符的级别最低,赋值的级别倒数第二。
第一章 C语言的基础知识第一节、对C语言的基础认识1、C语言编写的程序称为源程序,又称为编译单位。
2、C语言书写格式是自由的,每行可以写多个语句,可以写多行。
3、一个C语言程序有且只有一个main函数,是程序运行的起点。
第二节、熟悉vc++1、VC是软件,用来运行写的C语言程序。
2、每个C语言程序写完后,都是先编译,后链接,最后运行。
(.c---.obj---.exe)这个过程中注意.c和.obj文件时无法运行的,只有.exe文件才可以运行。
(常考!)第三节、标识符1、标识符(必考内容):合法的要求是由字母,数字,下划线组成。
有其它元素就错了。
并且第一个必须为字母或则是下划线。
第一个为数字就错了2、标识符分为关键字、预定义标识符、用户标识符。
关键字:不可以作为用户标识符号。
main define scanf printf 都不是关键字。
迷惑你的地方If是可以做为用户标识符。
因为If中的第一个字母大写了,所以不是关键字。
c语言复习题(1~6章) (2)
注意:超纲题不需要做!1、C语言提供合法的数据类型关键字是( )A)Double B)short C)integer D)Char2、对于下列各字符串,请选取择正确的标识符( )。
A)Boo B)for C)5abc D)I like C3、下列不属于字符型常量的是()A)‘A’B)“B”C)‘\n’ D)‘D’4、下面四个选项中,均是正确的八进制数或十六进制数的选项是。
A)-10 0x8f -011 B) 010 -0x11 0xf1C) 0abc -017 0xc D) 0a12 -0x123 -0xa5、若有定义:int a = 7; float x = 2.5 , y = 4.7 ;则表达式x + a % 3 * (int) (x + y) % 2/4 的值是A) 2.750000 B) 0.00000 C) 3.5000006、已知ch是字符型变量,下面不正确的赋值语句是。
A)ch = 5 + 9; B) ch= ' a + b '; C) ch = ' \ 0 '; D) ch= '7' + '6';7、错误的转义字符是 ( )A)'\091' B)'\\' C)'\0' D)'\''8、设int a,b,c;执行表达式a=b=1,a++,b+1,c=a+b--后,a,b和c的值分别是 ( )A)2,1,2 B)2,0,3 C)2,2,3 D)2,1,39、在C语言中,错误的常数是 ( )A)1E+0.0 B)5. C)0xaf D)0L10、下列正确的标识符是:A)12ab B)float C)aw~1e D)b6ty11、对y在[3,23]和[100,200]范围内为真的确表达式为:A)(y>=3)&&(y<=23)&&(y>=100)&&(y<=200)B)(y>=3)||(y<=23)||(y>=100)||(y<=200)C)(y>=3)&&(y<=23)||(y>=100)&&(y<=200)D)(y>=3)||(y<=23)&&(y>=100)||(y<=200)12、在一个C程序中A)main函数必须出现在所有函数之前B)main函数可以在任何地方出现C)main函数必须出现在所有函数之后D)main函数必须出现在固定位置13、8以下能正确地定义整型变量a,b和c并为其赋初值5的语句是A)int a=b=c=5;B)int a,b,c=5;C)int a=5,b=5,c=5;D)a=c=b=5;14、C语言中,long类型的数据占字节数为()A) 1 B) 2 C) 4D) 815、下列为合法的用户标识符为()A) _98B) P#d C) a* D) void16、如果x为float类型变量,则以下语句输出为()x=213.82631;printf(“%4.2\n”,x);A) 宽度不够,不能输出B) 213.82 C) 213.82631 D) 213.8317、在C语言中,合法的字符常量是( )A)'\084' B)'\x43' C)'ab' D)"\0"18、不能正确表示ab除以cd的C语言表达式是()A) a*b/c*d B) a/(c*d)*b C)a*b/c/d D) a*b/(c*d)19、以下不符合C语言语法的赋值语句是(D)A) i++; B) i=i=5; C) k=(2*4,k*4); D) y=float(i);20、若有以下定义:char a; int b;float c; double d;则表达式a*b+d-c值的类型为(D)A) float B) int C) char D) double21、下列程序的输出结果是#include<stdio.h>main(){float x,y;scanf("%f",&x);if(x<0.0)y=0.0;else if((x<5.0)&&(x!=2))y=1.0/(x+2.0);else if(x<10.0)y=1.0/x;else y=10.0;printf("%f\n",y) ; }输入:2.0A)0.000000 B)0.250000 C)0.5000000 D)1.00000022、下列程序的输出结果是main(){int m=5;if(m++>5)printf("%d\n",m);elseprintf("%d\n",m--) ; }A)7 B)6 C)5D)423、下列程序的输出结果是main(){int a=-1,b=1,k;if((++a<0)&&!(b--<=0))printf("%d %d\n",a,b);elseprintf("%d %d\n",b,a); }A)-1 1 B)0 1 C)1 0D)0 024、下列程序的输出结果是main(){int x=100,a=10,b=20,ok1=5,ok2=0;if(a<b)if(b!=15)if(!ok1)x=1;elseif(ok2)x=10;elsex=-1;print("%d\n",x);}A)-1B)0 C)10 D)225、下列程序的输出结果是main(){int a,b,c,x;a=b=c=0;x=35;if(!a) x--;else if(b);if(c)x=3;elsex=4;print("%d\n",x) ; }A)34 B)4C)35 D)326、下列程序的输出结果是2 main(){int a=2,b=-1,c=2;if (a<b)if(b<0)c=0;elsec+=1;printf("%d\n",c) ; }27、下列程序的输出结果是103 main(){int a=-1,b=4,k;k=(a++<0)&&(!(b--<=0));printf("%d%d%d\n",k,a,b) ; } 28、下列程序的输出结果是004 main(){int a=-1,b=4,k;k=(++a<0)&&(!(b--<=0));printf("%d%d%d\n",k,a,b) ; } 29、下列程序的输出结果是#include<stdio.h>main(){int x=1,y=0,a=0,b=0;switch(x){case 1 : switch(y){ case 0:a++;break;case 1:b++;break;}case 2 : a++;b++;break ; }printf("a=%d,b=%d\n",a,b) ; }A)a=2,b=1B)a=1,b=1C)a=1,b=0 D)a=2,b=230、当a的值分别为:1,2,3时,程序的结果是main(){int a;printf("Please enter a=");scanf("%d",&a);switch(a){case 1:printf("*");break;default:print("#");case 2:printf("-") ; } }1:*2:-3:#-31、下列程序运行结果#include<stdio.h>main(){int x=23;doprintf("%2d",x--);while(!x) ; }A)321 B)23C)无D)死循环32、下列程序运行结果#include<stdio.h>main(){int i=0,sum=1;dosum+=i++;while(i<6);printf("%d\n",sum) ; }A)15 B)16C)17 D)1833、下列程序运行结果#include<stdio.h>main(){int xfor (x=3;x<6;x++)printf((x%2)?("**%d"):("##%d\n"),x) ; }A)**3##4B)##3 C)##3**4 D)**3##4**5 **4##5 **5 ##534、下列程序的输出结果是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;}elsebreak; }printf("%f\n",y) ; }输入3.6 2.4回车,则结果为A)1.500000 B)1.600000 C)2.000000 D)2.40000035、下列程序的输出结果是main(){int i=0,a=0;while(i<20){for(;;)if (i%10==0) break; else i--;i+=11;a+=i ; }printf("%d\n",a) ; }A)21 B)32C)33 D)1136、下列程序的输出结果是main(){int u=24,v=16,w;while(v){w=u % v; u=v ; v=w;}printf("%d\n",u); }A)7 B)8C)9 D)1037、假定a和b为int型变量,则执行以下语句后b的值为a=1; b=10;do{ b-=a;a++;}while (b--<0);A) 9 B) -2 C) -1 D) 838、以下程序的输出结果是(超纲)main(){ int i,k,a[10],p[3]:K=5;for (i=0;i<10;i++) a[i]=i;for (i=0;i<3;i++) p[i]=a[i*(i+1)];for (i=0;i<3;i++) k+=p[i]*2;printf("%d\n",k);}A) 20 B) 21 C) 22 D)2339、有以下程序(程序错误)main(){ int i, j;for(j=10;j<11;j++){ for(i=9;i=j-1)printf("%d",j);}}输出结果是A) 11 B) 10 C) 9 D) 10 11。
计算机二级C语言复习资料
计算机二级C语言复习资料计算机二级C语言复习资料计算机二级C语言考试是计算机应用技术专业的一项重要考试,是检验学生计算机编程能力的重要指标,也是在就业过程中的重要技能。
为了让广大学生备考更加高效,我们特别整理了计算机二级C语言复习资料,希望对大家有所帮助。
一、基础知识1. 定义变量在C语言中,使用变量前需要先声明变量的类型和名称。
例如定义一个整数变量:int i;2. 初始化变量初始化变量指的是在声明变量时同时对变量进行赋值,例如:int i = 10;3. 数据类型C语言中的数据类型包括整型、浮点型、字符型和指针类型等。
其中整型又包括short、int、long和long long四种类型,浮点型包括单精度浮点型(float)和双精度浮点型(double)。
4. 运算符C语言中的运算符包括算数运算符、逻辑运算符、位运算符和赋值运算符等。
5. 控制语句C语言中的控制语句包括if语句、switch语句、while语句、for语句和do while语句等,这些语句可以控制程序的执行流程。
6. 函数函数是C语言中最基本的程序模块,它可以封装一些特定的功能,提高程序的可读性和重复利用性。
7. 数组数组是一组相同数据类型的有序集合,可以通过下标来访问数组元素。
例如:int a[10];二、典型例题下面给出几道代表性的计算机二级C语言考试例题,供考生们练习:1. 输入10个整数并输出其中的最大值。
#include <stdio.h>int main(){ int a[10], max, i;printf("Input 10 integers:\n"); for(i=0; i<10; i++){ scanf("%d", &a[i]); } max = a[0]; for(i=1;i<10; i++) { if(a[i] > max){ max = a[i]; } } printf("Max integer is: %d\n", max); return 0;}2. 求一个3×3矩阵对角线元素之和。
C语言复习资料2
《C语言》复习资料姓名班级成绩一、选择题1. 若x、i、j和k都是int型变量,则计算下面的表达式后,x的值是:() X=(i=4, j=16, k=32)A. 4B. 16C. 32D. 522. 在C语言中,要求运算数必须是整型数的运算符是:()A. /B. ++C. !=D. %3. putchar( ) 函数可以向终端输出一个。
()A. 整型变量表达式的值B. 实型变量的值C. 字符串D. 单个字符或字符型变量的值4. 以下说法正确的是:()A. 输入项可以为一个实型常量,如scanf(“%f”,3.5);B. 只有格式控制,没有输入项,也能进行正确输入,如:scanf(“a=%d,b=%d”);C. 当输入一个实型数据时,格式控制部分应规定小数点后的位数,如:scanf(“%4.2f”,&f);D. 当输入数据时,必须指时变量的地址,如:scanf(“%f”,&f);5. 判断char型变量ch是否为大写字母的正确表达式是: ( )A. (‘A’<=ch<=’Z’)B. (ch>=’A’ ) & (ch<=’Z’)C. (ch>=’A’) && (ch<=’Z’)D. (‘A’<=ch) AND (‘Z’>=ch)6. 设x、y、和z是int型变量,且x=3, y=4, z=5 ; 则下面表达式中值为0的是: ( )A. ‘x’ && ‘y’B. x<=yC. x||y+z && y-zD. !((x<y) && !z||1)7. 若希望当A的值为奇数时,输出为“真”,当A的值为偶数时,输出为“假”。
则以下错误的是:()A. if (A%2==1) printf(“真”); else printf(“假”);B. if (A%2==0) printf(“真”); else printf(“假”);C. if (A%2==0) printf(“假”); else printf(“真”);D. if (A%2!=0) printf(“真”); else printf(“假”);8. 已知int x=10,y=20,z=30; 以下语句执行后,x,y,z 的值是:( )If (x>y)Z=x; x=y; y=z;A. x=10,y=20,z=30B. x=20,y=30,z=30C. x=20,y=30,z=10D. x=20,y=30,z=209. 若运行时给变量x输入12,则以下程序的运行结果是:( )Main( ){int x,y;scanf(“%d”,&x);y=x>12?x+10:x-12;printf(“%d\n”,y);}A. 0B. 22C. 12D. 1010. C语言中while和do-while循环的主要区别是: ( )A. do-while的循环体至少要无条件执行一次B. while的循环控制条件比do-while的循环控制条件更严格C. do-while允许从外部转到循环体内D. do-while的循环体不能是复合语句11. 以下对一维数组a的说明,正确的是: ( )A. int a(10)B. int n=10,a[n];C. int n;D. #define SIZE 10scanf(“%d”,&n); int a[SIZE];int [n];12. 以下对二维数组a说明正确的是: ( )A. int a[3][];B. float a(3,4);C. float a[3][4];D. float a(3)(4);13. 对以下说明语句的正确理解是: ( )int a[10]={6,7,8,9,10};A. 将5个初值依次赋给a[1]至a[5]B. 将5个初值依次赋给a[0]至a[4]C. 将5个初值依次赋给a[6]至a[10]D. 因为数组长度与初值的个数不相同,所以此语句不正确14. 判断字符串s1是否大于字符串s2,应当使用: ( )A. if (s1>s2)B. if (strcmp(s1,s2))C. if (strcmp(s2,s1)>0)D. if (strcmp(s1,s2)>0)15. 设以下变量均为int类型,则值不等于7的是: ( )A. (x=y=6,x+y,x+1)B. (x=y=6,x+y,y+1)C. (x=6,x+1,y=6,x+y)D. (y=6,y+1,x=y,x+1)16. 以下正确的字符串结束标志是: ( )A. 0B. \0C. \\D. \17. 以下能正确定义整形变量a,b和c并为其赋初值5的语句是:( )A. int a=b=c=5;B. int a,b,c=5;C. a=5,b=5,c=5;D. a=b=c=5;18. 一个C语言程序是由。
《C语言》复习题2—带答案
《C语言》习题2一、单项选择题1、一个C程序的执行是从()A.main()函数开始,直到main()函数结束B.第一个函数开始,直到最后一个函数结束C.第一个语句开始,直到最后一个语句结束D.main()函数开始,直到最后一个函数结束2、设有语句int a=3;则执行语句a+=a-=a*a;后,变量a的值是()A.3 B.0 C.-12 D.93、若有char c[5]={'c','d','\0','e','\0'};则执行语句printf("%s",c);结果是( )。
A.cd\0e B.'c''d' C.cd D.cd e4、执行char str[10]=”Ch\nina”; strlen(str)的值是()A.5 B.6 C.7 D.95、组成C程序的基本单位是()A.函数B.标识符C.表达式D.语句6、设int类型的数据长度为2字节,则该类型数据的取值范围是()A.0至65536 B.0至65535C.-32767至32768 D.-32768至327677、在C语言中,逻辑值“真”是用()表示的。
A.预定义为真值的宏B.非零数C.正数D.非零整数8、C语言对于嵌套if语句规定else总是与()匹配。
A.与最外层的if B.与之前最近的ifC.与之前最近的不带else的if D.与最近的{ }之前的if9、数组定义char a[10]={'`a`,`b`,`c`}:包括了几个元素()A.3 B.9 C.4 D.1010、若有语句scanf(“%d%d”,&a,&b);要使变量a,b分别得到12和34;正确的输入形式为()A.12 34 B.12,34 C.1234 D.12:3411、以下程序的输出结果是()#include<stdio.h>void main(){char s[]="159",*p; p=s;printf("%c",*p++); printf("%c",*p++);}A. 15B. 16C. 12D. 5912、以下程序的输出结果是()。
C语言各章节复习题(带答案) 2
一、C语言概述练习题选择1.一个C程序的执行是从。
A) 本程序的main函数开始,到main函数结束B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C) 本程序文件的第一个函数开始,到本程序main函数结束D) 本程序的main函数开始,到本程序文件的最后一个函数结束2.以下叙述不正确的是。
A) 一个C源程序必须包含一个main函数 B)一个C源程序可由一个或多个函数组成C) C程序的基本组成单位是函数 D) 在C程序中,注释说明只能位于一条语句的后面3.以下叙述正确的是。
A) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误B) 在C程序中,main函数必须位于程序的最前面C) C语言本身没有输入输出语句 D) C程序的每行中只能写一条语句4.一个C语言程序是由。
A)一个主程序和若干个子程序组成B) 函数组成 C) 若干过程组成 D) 若干子程序组成5.计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是。
A) C语言程序仅可以编译执行B) C语言程序仅可以解释执行C) C语言程序既可以编译执行又可以解释执行D) 以上说法都不对6.以下叙述中错误的是。
A) C语言的可执行程序是由一系列机器指令构成的B)用C语言编写的源程序不能直接在计算机上运行C)通过编译得到的二进制目标程序需要连接才可以运行D)在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe文件7.以下叙述正确的是。
A) C语言程序是由过程和函数组成的B) C语言函数可以嵌套调用,例如:fun(fun(x))C) C语言函数不可以单独编译 D) C语言中除了main函数,其他函数不可作为单独文件形式存在二、数据类型、运算符与表达式选择.1.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为x=(i=4,j=16,k=32) A) 4 B) 16 C) 32D) 522.下列四组选项中,均不是C语言关键字的选项是。
C语言课程的复习题2(选择题)
第六章指针601.若有以下定义和语句:doubler=99,*p=&r;*p=r;则以下正确的叙述是A)以上两处的*p含义相同,都说明给指针变量p赋值B)在“doubler=99,*p=&r;”中,把r的地址赋值给了p所指的存储单元C)语句“*p=r;”把变量r的值赋给指针变量pD)语句“*p=r;”取变量r的值放回r中答案:D602.以下程序执行后,a的值是mian(){inta,k=4,m=6,*p1=&k,*p2=&m;a=p1==&m;printf(“%d\n”,a);}A)4B)1C)0D)运行时出错,无定值答案:c603.下面关于指针的正确叙述是A)指针就是计算机中用来定位的一种硬件B)指针变量与普通内存变量一样C)所谓指针实际上就是内存地址D)因为内存地址一直存在,所以不论是否定义指针变量,指针变量都一直存在604.下面能正确进行字符串赋值操作的语句是A)chars[5]={“ABCDE”};B)chars[5]={‘A’、’B’、’C’、’D’、’E’};C)char*s;s=”ABCDEF”;D)char*s;scanf(“%s”,s);答案:c605.设有如下一段程序:int*var,ab;ab=100;var=&ab;ab=*var+10;执行上面程序段后,ab的值为A)120B)110 C)100D)90答案:B606.若x是整型变量,pb是基类型为整型的指针变量,则正确的赋值表达式是A)pb=&xB)pb=xC)*pb=&xD)*pb=*x答案:A607.设有如下程序:#include<stdio.h>main(){int**k,*j,i=100;j=&i;k=&j;printf(“%d\n”,**k);}上述程序的输出结果是A)运行错误B)100C)i的地址D)j的地址答案:B608.若有定义:inta[10],*p=a;则p+5表示A)元素a[5]的地址B)元素a[5]的值C)元素a[6]的地址D)元素a[6]的值答案:A609.若已定义:inta[9],*p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是A)p+1B)a+1C)&a[1]D)p答案:D610.若有定义:inta[10];则数组a中首元素的地址可表示为A)aB)a+1C)&aD)&a[1]答案:A611.请阅读程序:#include<stdio.h>inta[]={2,4,6,8};main(){inti;int*p=a;for(i=0;i<4;i++)a[i]=*p++;printf(“%d\n”,a[2]);}上面程序的输出结果是A)6B)8C)4D)2答案:A612.下面程序段的运行结果是char*p=”%d,a=%d,b=%d\n”;inta=123,b=10,c;c=a%b;p+=3;printf(p,c,a,b);A)3,a=123,b=10B)a=3,b=123C)a=123,b=10D)以上结果都不对答案:B613.以下程序的运行结果是#include“stdio.h”main(){inta[]={1,2,3,4,5,6,7,8,9,10,11,12}; int*p=a+5,*q;*q=*(p+5);printf(“%d%d\n”,*p,*q);}A)运行后报错B)611C)610D)55答案:B614.阅读程序:#include<stdio.h>main(){inta[10]={1,2,3,4,5,6,7,8,9,0},*p;p=a;printf(“%x\n”,p);printf(“%x\n”,p+9);该程序有两个printf语句,如果第一个printf语句输出的是194,则第二个printf 语句输出结果是A)203B)204C)1a4D)1a6答案:D615.以下程序的输出结果是main(){chara[10]={'1','2','3','4','5','6',' 7','8','9',0},*p;/*0即'\0'*/inti;i=8;p=a+i;printf(“%s\n”,p-3);}A)6B)6789C)'6'D)789答案:B616.已知指针p的指向如下图所示,则执行语句*--p;后*p的值是a[0]a[1]pa[2]a[3]a[4]┌──┬──┬──┬──┬──┐│10│20│30│40│50│└──┴──┴──┴──┴──┘A)30B)20C)19D)29答案:B617.下列程序的输出结果是main(){inta[5]={2,4,6,8,10},*p,**k;p=a;k=&p;printf(“%d”,*(p++));printf(“%d\n”,**k);}A)44B)22C)24D)46答案:C618.以下程序段给数组所有的元素输入数据,请选择正确答案填入。
广技师C语言复习题2. 练习(输入输出)(有答案)
一、选择题1. 以下程序的运行结果是。
#include <stdio.h>int main( ){ int m=5, n=10;printf(“%d, %d\n”,m++, --n);return 0;}A.5,9 B.6,9 C.5,10 D.6,102. 有定义语句int a,b; ,若要通过语句scanf(“%d, %d”, &a, &b); 使变量a得到数值6,变量b得到数值5,下面形式中错误的是。
(注:□代表空格)A.6,5<回车> B.6,□□5<回车>C.6 5<回车> D.6,<回车>5<回车>3. 以下程序的输出结果是。
(注:□代表空格)#include <stdio.h>int main( ){ printf(“\n*s1=%15s*”, “chinabeijing” );pirntf(“\n*s2=%-5s*”, “chi”);return 0;}A.*s1=chinabeijing□□□* B.*s1=chinabeijing□□□* *s2=**chi* *s2=chi□□*C.*s1=*□□chinabeijing* D.*s1=□□□chinabeijing* *s2=□□chi* *s2=chi□□*4. 已有如下定义语句和输入语句,若要求a1, a2, c1, c2的值分别为10、20、A和B,当从第一列开始输入数据时,正确的数据输入方式是。
(注:□代表空格)int a1,a2; char c1, c2;scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);A.10A□20B<回车> B.10□A□20□B<回车>C.10□A□20B<回车> D.10A20□B<回车>5. 已有定义int x; float y; 且执行scanf(“%3d%f”, &x,&y); 语句,若从第一列开始输入数据12345□678<回车>,则x的值为(1),y的值为(2)。
C语言程序设计复习题二及参考答案
C语言程序设计复习题二一.单项选择题1.按照C语言的规定,能作为用户标识符的是()。
A)int B)5a C)abc_123 D)unsigned2.编译操作的功能是把源程序转换成()。
A)源程序B)目标程序C)可执行程序D)汇编程序3.定义下面语句,编译会出错的是()。
A)char a='x'; B)char a='\t'; C)char a='cc'; D)char a='\101';4.以下选项中正确的定义语句是()。
A)double x; y; B)double x=y=7; C)double x=7, y=7; D)double, x, y;5.若有定义int x, y;并已正确给变量赋值,则以下选项中与表达式(x-y) ? (x++): (y++)中的条件表达式(x-y)等价的是()。
A)(x-y>0) B)(x-y<0) C)(x-y<0 || x-y>0) D)(x-y==0)6.以下关于long、int和short类型数据占用内存大小的叙述中正确的是()。
A)均占4个字节B)根据数据的大小来决定所占内存的字节数C)由用户自己定义D)由C语言编译系统决定7.设有定义:int x=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是()。
A)x++ B)x+=1 C)++x D)x+18.若有定义语句:int x=10;,则表达式x-=x+x的值为()。
A)-20 B)-10 C)0 D)109.有以下程序void main(){ int x,y,z;x=y=1;z=x++,y++,++y;printf("%d,%d,%d\n",x,y,z);}程序运行后的输出结果是()。
A)2,3,3 B)2,3,2 C)2,3,1 D)2,2,110.以下叙述中正确的是()。
A)C语言是一种非结构化程序设计语言B)结构化程序有顺序、分支、循环三种基本结构组成C)使用三种基本结构构成的程序只能解决简单问题D)结构化程序设计不提倡模块化的设计方法11.有以下程序#include <stdio.h>void main(){ char e1,e2;e1=’A’+’8’-‘4’;e2=’A’+’8’-‘5’;printf(“%c,%d\n”,e1,e2);}已知字母A的ASCII码为65,程序运行后的输出结果是()A)E,68 B)D,69 C)E,D D)输出无定值12.有以下程序void main(){ int a=0,b=0;a=10; /*给a赋值b=20; 给b赋值*/printf("a+b=%d\n",a+b);}程序运行后输出结果是()。
c语言总复习
1.2 标识符与最常用的关键字
• 在C语言中使用的词汇分为六类: 语言中使用的词汇分为六类:
– 标识符 – 关键字 – 运算符 – 分隔符 – 常量 – 注释符 – …… • 在C语言中采用的分隔符有逗 号和空格两种。 号和空格两种。 • 逗号主要用在类型说明和函数 参数表中,分隔各个变量。 参数表中,分隔各个变量。 • 空格多用于语句各单词之间, 空格多用于语句各单词之间, 作间隔符。 作间隔符。
1.2 标识符与最常用的关键字
• 在C语言中使用的词汇分为六类: 语言中使用的词汇分为六类:
– 标识符 – 关键字 – 运算符 – 分隔符 – 常量 – 注释符 – …… • C语言中使用的常量可分为数 字常量、字符常量、字符串常量、 字常量、字符常量、字符串常量、 符号常量、转义字符等多种。 符号常量、转义字符等多种。
– C语言规定必须以main作为主函数名; 语言规定必须以main作为主函数名 作为主函数名; – C程序的执行顺序是从主函数开始。 程序的执行顺序是从主函数开始 从主函数开始。
1.1 C语言程序的基本组成 C语言程序的基本组成
• 源程序可以有预处理命令(#开头,如 源程序可以有预处理命令(#开头, 开头 #include), #include),预处理命令通常应放在源文件 或源程序的最前面。 或源程序的最前面。 • 每一个语句都必须以分号结尾,但 每一个语句都必须以分号结尾,
2.3 跳转语句
– break语句;continue语句 break语句 continue语句 语句;
2.1 分支语句及其应用
• C语言支持以下判断语句
– if语句:语法及使用, if语句 语法及使用, 语句: 注意: if语句嵌套时 最后一个else与最近的 语句嵌套时, 注意:当if语句嵌套时,最后一个else与最近的 else的未结束的 语句相关联 的未结束的if 无else的未结束的if语句相关联 – switch语句:语法及使用 switch语句 语句: 注意:switch表达式必须是整型的; 注意:switch表达式必须是整型的; 表达式必须是整型的 case标签必须是常量或常量表达式 case标签必须是常量或常量表达式; 标签必须是常量或常量表达式; default是可选的 最多只能有一个; default是可选的,最多只能有一个; 是可选的, 应把具有类似动作的case归为一组 归为一组。 应把具有类似动作的case归为一组。
C语言总复习
C语言总复习第1章程序设计基本概念1、C程序运行的步骤2、结构化程序设计第2章C程序设计的初步知识1、简单C程序的构成和格式2、标识符、常量和变量3、整型数据4、实型数据5、算术表达式6、赋值表达式7、自加、自减运算符和逗号运算符第3章顺序程序设计1、赋值语句2、数据输出:printf函数3、数据输入:scanf函数4、复合语句5、空语句第4章选择程序1、关系运算符及关系表达式2、逻辑运算符及关系表达式3、用if语句实现选择结构(1)if语句的三种形式(2)if语句的嵌套4、条件运算符和条件表达式5、用switch语句实现多分支选择结构第5章循环程序1、循环要素2、循环语句:while、do-while、for3、循环嵌套4、用break语句与continue语句改变循环状态●用break语句提前退出循环●用continue语句提前结束本次循环第6章字符型数据1、字符常量2、转义字符常量3、字符串常量4、字符变量5、字符的输入和输出●printf函数输出字符●scanf函数输入字符●putchar函数输出字符●getchar函数输入字符第7章函数1、函数分类2、库函数3、函数的定义4、函数的参数5、函数的返回值6、函数的调用7、函数说明第8章指针1、变量的地址和指针变量2、定义一个指针变量3、给指针变量赋值4、通过指针来引用一个存储单元5、函数之间地址值的传递第9章数组1、数组的概念2、一维数组的定义、引用、初始化3、一维数组和指针●一维数组和数组元素的地址●通过数组的首地址引用数组元素●通过指针引用数组元素●通过带下标的指针变量引用一维数组元素4、一维数组和函数●数组元素作实参●数组名作实参●数组元素地址作实参5、二维数组的定义、引用、初始化6、二维数组和指针●二维数组和数组元素的地址●通过地址引用二维数组元素●通过建立一个指针数组引用二维数组元素●通过建立一个行指针引用二维数组元素7、二维数组和函数●二维数组名作实参●指针数组作实参第10章字符串1、用一维字符数组存放字符串2、使指针指向一个字符串●形式1:char *ps1=“from one”;●形式2:char *ps1;ps1=“from one”;3、字符串的输入输出●用%c格式说明逐个输入输出●用%s格式说明整串输入输出●用gets和puts函数输入输出4、用于字符串处理的函数●头文件为string.h●字符串复制函数strcpy(s1,s2)●字符串连接函数strcat(s1,s2)●求字符串长度函数strlen(s)●字符串比较函数strcmp(s1,s2)5、字符串数组第11章对函数的进一步讨论1、通过实参向函数传递函数名或指向函数的指针变量●指向函数指针变量的定义●函数指针变量定义的一般形式2、函数的递归调用第12章C语言中用户标识符的作用域和存储类1、局部变量、全局变量和存储分类●从变量的作用域(即从空间)角度来分,可以分为局部变量和全局变量。
C语言基础知识总结(2)
C语言基础知识总结(2)C语言基础知识总结}#includevoid main(){int a,b;scanf("%2d%2d",&a,&b);//输入时将前两位数读入存到a中,接着两位存到b中,然后结束读取,即输入:1234,或123456结果一样printf("a=%d,b=%d ",a,b);}#includevoid main(){int a,b;scanf("%d %d",&a,&b);printf("a="%d",b="%d" ",a,b);//输出a="12",b="34"}#includevoid main(){int a,b;scanf("%d%*c%d",&a,&b);//任意字符都可作为分隔符,即输入:12,34或12?34或12+34结果都一样printf("a=%d,b=%d ",a,b);}#includevoid main(){int a,b;scanf("%2d%*2d%d",&a,&b);//忽略两位,输入123456printf("a=%d,b=%d ",a,b);//输出a=12,b=56}对于程序#includevoid main(){int a,b;scanf("%d %d",&a,&b);printf("a=%d,b=%d ",a,b);}如果输入12 34a回车,则结果a=12,b=3,程序在遇到非法字符a 时,会导致程序输入终止,此时a会读入12,b会读入3 如果输入123a回车,则结果a=123,b=-858993460,程序在遇到非法字符a时,会导致程序输入终止,此时a会读入123,而b未能读入指定数据项数如果在scanf()函数中忘记在变量前加取地址运算符&,会导致非法内存访问13.%c格式符使用几种情况:1) 用%c格式读入字符时,空格字符和转义字符(包括回车)都会被当做有效字符读入例:键盘输入一个整数加法算式:操作数1+操作数2,输出:操作数1+操作数2=计算结果#includevoid main(){int data1,data2;char op; //输入:12空格+空格 3 回车//输出:12 -858993460=-858993448printf("Enter data1+data2 ");//输入:12空格3 回车//输出:12 3=15scanf("%d%c%d",&data1,&op,&data2);//输入:12+3 回车//输出:12+3=15 printf("%d%c%d=%d ",data1,op,data2,data1+data2);}2) 先输入一个数据后再输入字符型变量时,输入一个数据后,输入的回车符将被当做有效字符读给字符型变量例:编程从键盘先后输入int型、char型和float型数据,要求每输入一个数据就显示这个数据的类型和数据值void main(){int a;char b;float c;printf("Please input an integer:");scanf("%d",&a);printf("integer:%d ",a);//在输入一个整型数据后,输入的回车符被当做有效字符读给了字符型变量b了printf("Please input a character:");scanf("%c",&b);printf("chracter:%c ",b);printf("Please input a float number:");scanf("%f",&c);printf("float:%f ",c);}14.%c格式符存在问题的解决方法1) 用函数get)将数据输入时存入缓冲区中的回车符读入,以避免被后面的字符型变量作为有效字符读入#includevoid main(){int a;char b;float c;printf("Please input an integer:");scanf("%d",&a);printf("integer:%d ",a);get);//将存于缓冲区中的回车符读入,避免在后面作为有效字符读入//函数get)的返回值是一个回车符,已经避免了错误,不需要再将其赋给字符型变量使用printf("Please input a character:");scanf("%c",&b);printf("chracter:%c ",b);printf("Please input a float number:");scanf("%f",&c);printf("float:%f ",c);}2) 在%c前面加一个空格,将前面数据输入时存于缓冲区的回车符读入,避免被后面的字符型变量作为有效字符读入void main(){int a;char b;float c;printf("Please input an integer:");scanf("%d",&a);printf("integer:%d ",a);printf("Please input a character:");scanf(" %c",&b);//在%c前面加空格,将存于缓冲区中的回车符读入printf("chracter:%c ",b);printf("Please input a float number:");scanf("%f",&c);printf("float:%f ",c);}//解释:在%c前加空格为什么能将存于缓冲区中的回车符读入因为如果函数scanf()的格式控制字符串中存在除格式转换说明符以外的其他字符,必须将这些字符原样输入,所以在%c前加空格,就必须在输入字符型数据前先原样输入空格,而空格,回车符,制表符在函数scanf()输入数值型数据时都代表输入结束,由实践可知,空格符、回车符、制表符在输入时等效所以,缓冲区中的回车将代替需要原样输入的空格,因此,实际上,在%c前增加空格或者Tab键都可以完成,并且与增加的数量无关,且可以混合增加3)*经典例题:编程实现键盘任意输入字符,统计字母、数字、空格、其他字符数量首选字符串的方法:#include#define N 100int main(){char a[N];int i,m=0,n=0,b=0,c=0;printf("请输入字符: ");gets(a);for(i=0;a[i]!=;i++){if((a[i]>=a&&a[i]<=z)||(a[i]>=A&&a[i]<=Z)) m++;else if(ch>=0&&ch<=9) b++;else if(ch== ) c++;else d++;}}while(ch!= );printf("字母个数:%d ",a);printf("数字个数:%d ",b);printf("空格个数:%d ",c);printf("其他字符个数:%d ",d);return 0;}//解释:你可以把T ab控制结束改成其他任意字符,包括字母、数字、/;都可以,就是不能直接使用回车控制结束,因为你在实际键盘输入时,需要打回车才能把前面的字符读入,当你输完回车后,就已经换行了,再回车就达不到你要的效果了,不可能把他读入,但是他会留在缓冲区下一次使用,所以说,理论上任意字符都可以控制结束,但是不能直接使用回车再回车的方法,而get)函数一次只能读一个字符,当你回车读入字符后,回车符就会留在缓冲区下一次使用,你可以试试,你把get)这行语句注释,然后一次输入两个字符再回车的话,那么这时他也只能读入第一个字符,第二个字符和回车就会计入第二次、第三次的结果。
计算机二级C语言复习资料(2)
计算机二级C语言复习资料(2)计算机二级C语言复习资料2)逻辑表达式:只能为1(表示为真),或0(表示假)a) 共有&& || ! 三种逻辑运算符号。
b) !>&&>|| 优先的级别。
c) 注意短路现象。
考试比较喜欢考到。
d) 要表示 x 是比0大,比10小的方法。
0<x<10是< p=""> 不可以的(一定记住)。
是先计算0结果为1或则0;再用0,或1与10比较得到的总是真(为1)。
所以一定要用(0<x)&&(x<10)表< p="">示比0大比10小。
3)if 语句else 是与最接近的if且没有else的相组合的。
4)条件表达式:表达式1 ?表达式2 :表达式3注意是当非0时候是表达式2的数值,当为0是就是表达式2的`数值。
考试口诀:真前假后。
5)switch语句:a)一定要注意有break 和没有break的差别,没有break时候,只要有一个case匹配了,剩下的都要执行,有break则是直接跳出了swich语句。
b)switch只可以和break一起用,不可以和continue用。
需要计算机二级题库软件联系QQ:3026287336任一科目,确保100%原题第四章1)三种循环结构:a)for(); while(); do- while()三种。
b)for循环当中必须是两个分号,千万不要忘记。
c)写程序的时候一定要注意,循环一定要有结束的条件,否则成了死循环。
d) do-while()循环的最后一个while();的分号一定不能够丢。
(当心上机改错)2) break 和 continue的差别记忆方法:break:是打破的意思,(破了整个循环)所以看见break就退出真个一层循环。
continue:是继续的意思,(继续循环运算),但是要结束本次循环,就是循环体内剩下的语句不再执行,跳到循环开始,然后判断循环条件,进行新一轮的循环。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言总复习第二部分程序设计程序运行步骤:编译F9 运行Ctrl+F9 查看结果Alt+F5结构化程序设计的三种基本结构:顺序结构选择结构循环结构一、选择结构条件语句1、i f(表达式) 语句;2、if(表达式)语句1;else语句2;*条件语句可以嵌套*if语句内嵌的语句为赋值语句时,可用条件运算符处理,使问题简单:if (a>b) max=a;else max=b;max=(a>b)?a:b;3. 阶梯式if-else-if结构。
阶梯式结构的一般形式为:if(表达式1)语句1;else if(表达式2)语句2;else if(表达式3)语句3;...else语句n;这种结构是从上到下逐个对条件进行判断, 一旦发现条件满点足就执行与它有关的语句, 并跳过其它剩余阶梯; 若没有一个条件满足, 则执行最后一个else语句n。
最后这个else常起着"缺省条件"的作用。
5.多分支语句swtichswitch(变量){case 常量1:语句1或空;case 常量2:语句2或空;.case 常量n;语句n或空;default:语句n+1或空;}执行switch开关语句时, 将变量逐个与case后的常量进行比较, 若与其中一个相等, 则执行该常量下的语句, 若不与任何一个常量相等, 则执行default 后面的语句。
注意:1. switch中变量可以是数值, 也可以是字符。
2. 可以省略一些case和default。
3. 每个case或default后的语句可以是语句体, 但不需要使用"{"和"}"括起来。
下例的switch中变量为整数型。
main(){int test;for(test=0; test<=10; test++){switch(test) /*变量为整型数的开关语句*/{case 1:printf("%d\n", test);break; /*退出开关语句*/case 2:printf("%d\n", test);break;case 3:printf("%d\n", test);break;default:puts("Error");break;}}}下例的switch中变量为字符型。
#include<stdio.h>main(){char c;while(c!=27) /*循环直到按Esc键结束*/{c=getch(); /*从键盘不回显接收一个字符*/switch(c){case 'A': /*接收的字符为'A'*/putchar(c);break; /*退出开关语句*/case 'B':putchar(c);break;default: /*接收的字符非'A'和'B'*/puts("Error");break;}}}注:要理清分支,最好用框图2、循环结构三种基本的循环语句: for语句、while语句和do-while 语句。
重点:for循环for循环是开界的。
它的一般形式为:for(循环变量赋初值; 循环条件; 循环变量增值)语句;for(i=1; i<=10; i++)语句;1. for循环中循环体可以为语句体, 但要用"{"和"}"将参加循环的语句括起来。
2. for循环中的"初始化"、"条件表达式"和"增量"都是选择项, 即可以缺省, 但";"不能缺省。
3. for循环可以有多层嵌套。
main(){ int i, j, k;printf("i j k\n");for (i=0; i<2; i++)for(j=0; j<2; j++)for(k=0; k<2; k++)printf(%d %d %d\n", i, j, k); } 输出结果为:i j k0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1while循环的一般形式为:while(条件)语句;while循环表示当条件为真时, 便执行语句。
直到条件为假才结束循环。
并继续执行循环程序外的后续语句。
例: #include<stdio.h>main(){char c;c='\0'; /*初始化c*/while(c!='\X0D') /*回车结束循环*/c=getche(); /*带回显的从键盘接收字符*/}上例中, while循环是以检查c是否为回车符开始, 因其事先被初始化为空, 所以条件为真, 进入循环等待键盘输入字符; 一旦输入回车, 则c='\X0D', 条件为假, 循环便告结束。
与for循环一样, while循环总是在循环的头部检验条件, 这就意味着循环可能什么也不执行就退出。
✓do-while 循环的一般格式为:do语句;while(条件);这个循环与while循环的不同在于: 它先执行循环中的语句, 然后再判断条件是否为真, 如果为真则继续循环; 如果为假, 则终止循环。
因此, do-while循环至少要执行一次循环语句。
✓break、continue和goto语句break语句通常用在循环语句和开关语句中。
当break语句用于do-while、for、while循环语句中时, 可使程序终止循环而执行循环后面的语句, 通常break 语句总是与if语句联在一起。
即满足条件时便跳出循环。
例main(){int i=0;char c;while(1) /*设置循环*/{c='\0'; /*变量赋初值*/while(c!=13&&c!=27) /*键盘接收字符直到按回车或Esc键*/{c=getch();printf("%c\n", c);}if(c==27)break; /*判断若按Esc键则退出循环*/i++;printf("The No. is %d\n", i);}printf("The end"); }注: 在多层循环中, 一个break语句只向外跳一层。
continue语句的作用是跳过循环本中剩余的语句而强行执行下一次循环。
continue语句只用在for、while、do-while等循环体中, 常与if条件语句一起使用, 用来加速循环。
例:main(){char c;while(c!=0X0D) /*不是回车符则循环*/{c=getch();if(c==0X1B)continue; /*若按Esc键不输出便进行下次循环*/printf("%c\n", c);}}goto语句是一种无条件转移语句.格式为: goto 标号;其中标号是Turbo C中一个有效的标识符, 这个标识符加上一个":" 一起出现在函数内某处, 执行goto语句后, 程序将跳转到该标号处并执行其后的语句。
另外标号必须与goto语句同处于一个函数中, 但可以不在一个循环层中。
通常goto语句与if条件语句连用, 当满足某一条件时, 程序跳到标号处运行。
goto语句通常不用, 主要因为它将使程序层次不清, 且不易读, 但在多层嵌套退出时, 用goto语句则比较合理。
三、数组数组:数组是一组有序数据的集合,数组中每一个元素的类型相同一维数组的定义定义方式:类型说明符数组名[下标常量表达式]例、int a[10]定义一个数组,数组名a,有10个元素,每个元素的类型均为int。
这10个元素分别是:a[0]、a[1]、a[2]、a[3]、a[4]、....、a[8]、a[9]。
注:(1)C语言中,数组下标从0开始.(2)C语言不允许对数组的大小做动态定义,如:二、数组元素的引用C语言规定,不能引用整个数组,只能逐个引用元素如;a[0] = a[5] + a[7] - a[2*3]三、一维数组的初始化初始化:在定义时指定初始值,编译器把初值赋给数组变量。
赋值:使用赋值语句,在程序运行时把值赋给数组变量,如a[0] = 2。
1、一般初始化,例、2、部分元素初始化,例、二维数组一、二维数组的定义二维数组的理解:二维数组a[3][4]理解为:有三个元素a[0]、a[1]、a[2],每一个元素是一个包含4个元素的数组。
二、二维数组中元素的引用用数组名和下标引用元素。
例、float a[2][3]; 有6个元素,按如下方式引用各元素:a[0][0]、a[0][1]、a[0][2]、a[1][0]、a[1][1]、a[1][2]注意:数组float a[2][3]中无元素a[2][3]。
(下标从0始)三、二维数组的初始化1、分行赋值(常用)如、int a[3][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};2、全部数据写在一个大括号内,如、int a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12};3、部分元素赋值,如、int a[3][4] = {{1},{5},{9}};仅对a[0][0]、a[1][0]、a[2][0]赋值,其余元素编译器自动指定初值0;4、应用例、main ( ){int a[5][3];int i,j;for ( i=0; i<5; ;i++)for ( j=0; j<3; ;j++)a[i][j]=i+j;for ( i=0; i<5; ;i++)for ( j=0; j<3; ;j++)printf(“%5d”,a[i][j]);printf(“\n”);}字符数组字符数组:存放字符数据的数组,每一个元素存放一个字符。
一、程序中定义字符数组例、注意:字符型与整型可以通用,但有区别:二、字符数组的初始化1、逐个元素初始化2、初始化数据少于数组长度,多余元素自动为“空”('\0',二进制0)。
三、字符数组的引用引用一个元素,得到一个字符。
四、字符串字符串例子:"I am a boy"1、C语言中,字符串作为字符数组处理。
字符数组可以用字符串来初始化,例、static char c[] = {"I am happy"};或static char c[] ="I am happy";(常用)2、字符串在存储时,系统自动在其后加上结束标志'\0'五、字符数组的输入输出2种方法:1、用“%c”格式符逐个输入输出。