C语言总复习
- 格式:doc
- 大小:225.00 KB
- 文档页数:16
选择题1、以下不是C语言基本数据类型的是D。
A.字符型B.C.整型D.构造类型2、以下B是八进制数。
A.1X12 B.123C.1001 D.01233、Turbo C中,char类型变量所占字节数是B。
A. 2 B. 1C. 3 D. 44、C语言提供的合法的数据类型关键字是B。
A.longer B.shortC.integer D.character5、C语言中运算对象必须是整型的运算符是A。
A.%= B.==C.+= D.*=6、下面关于字符串和字符常量的叙述中错误的是C。
A.字符常量由单引号括起来,字符串常量由双引号括起来B.字符常量只能是单个字符,字符串常量可以含一个或多个字符C.字符常量占一个字节的内在空间,字符串常量占的内在字节数为字符串中字符数D.可以将一个字符常量赋予一个字符变量,但不能将一个字符串常量赋予一个字符串变量7、以下程序的输出结果是D。
main(0{ int m = 10, n = 3;printf( " %d\n ", n = m / n ) ;}A.10 B.11C.13 D. 38、若以下变量均已正确说明为char类型,要给x、y和z输入数据,正确的是B。
A.scanf ( x, y, z );B.scanf ( "%c%c%c", &x, &y, &z ) ;C.scanf ( "%C%C%C", x, y, z ) ;D.scanf ( "%c%c%c", x, y, z ) ;9、以下程序的输出结果是C。
char c1, c2;c1=65; c2 = 65 + 32 + 1 ;printf ( "%c, %c ", c1, c2 ) ;A.a, B B.A, BC.A, b D.a, b10、以下程序的输出结果是C。
#include "stdio.h"#include "math.h"main(){ int a=3, b=9 ;float y, x=1.2 ;y= ( a+b ) / sqrt ( b ) * x ;printf ( "%\n", y ) ; }A. 1.000000 B. 1.400000C. 4.800000 D. 1.90000011、以下程序段的输出结果是7 6 7。
《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语言复习题附答案(总21页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--判断题1.运算器是完成算术和逻辑操作的处理部件,通常称为CPU。
×2.通常硬盘安装在主机箱内,因此它属于主存储器。
×3.指令与数据在计算机内是以ASCII码进行存储的。
×4.操作系统是合理地组织计算机工作流程、有效地管理系统资源、方便用户使用的程序集合。
√5.用计算机机器语言编写的程序可以由计算机直接执行,用高级语言编写的程序必须经过编译才能执行。
√6.计算机的所有计算都是在内存中进行的。
×7.字长是指计算机能直接处理的二进制信息的位数。
√8.计算机区别于其他计算工具的本质特点是能存储数据和程序。
√9.系统软件就是市场上买来的软件,应用软件就是自己编写的软件。
×10.常用字符的ASCII码值从小到大的排列规律是:空格、阿拉伯数字、小写英文字母、大写英文字母。
×11.多台计算机相连,就形成了一个网络系统。
×12.在Internet网上,IP地址、E-mail地址都是唯一的。
√13.不同类型的变量在内存中占用存储空间的大小都是一样的。
×14.表示数学式3<x<5的C表达式也是3<x<5。
×15.设某字符的ASCII码十进制值为72,则其十六进制值为48。
√16.结构化程序语言的三种基本结构是顺序、选择和循环。
√17.‘\n’不是一个字符常量。
×18.与float型数据相比,double型数据的精度高,取值范围大。
√19.在C语言中,表达式(010+2)的值是10。
√20.do-while语句先执行循环体,后判断循环条件,所以循环体至少会执行一次。
√21.在C 语言中,常量和变量都有数据类型。
√22.C 语言的运算符只有单目运算符和双目运算符两种。
×23.若变量已正确定义,表达式 x + y = z符合C语言语法。
7、编写一个程序,将用户输入的十进制整数转换成
十六进制数。
8、编写程序,把一个65---91之间的数据看成是字
符的ASCII码,输出对应的字符。
(用Do循环语句编写,且字符之间用空格分开)
9、输入一个英文句子,它仅包含单词与空格,试把其中的每一个单词的第一个字母设置为大写,其余字母设置为小写,输出结果。
(用数组编程)
10、
11、
12、
13、
14、
15、
16、
17
18、
19、
20、
21、
第二部分参考答案
参考资料:[1]程朔鹰等人民邮电出版社《C语言程序设计习题集》
[1]程朔鹰等人民邮电出版社《C语言程序设计习题集》
[1]程朔鹰等人民邮电出版社《C语言程序设计习题集》
[1]程朔鹰等人民邮电出版社《C语言程序设计习题集》
[1]程朔鹰等人民邮电出版社《C语言程序设计习题集》。
单项选择题1.char *p[10];该语句声明了一个: C 。
A) 指向含有10个元素的一维字符型数组的指针变量pB) 指向长度不超过10的字符串的指针变量pC) 有10个元素的指针数组p,每个元素可以指向一个字符串D) 有10个元素的指针数组p,每个元素存放一个字符串2.在while(!x)语句中的x与下面条件表达式等价的是: D 。
A) x!=0 B) x==1 C) x!=1 D) x==03.若二维数组a有m行n列,则下面能够正确引用元素a[i][j]的为: C 。
A) *(a+j*n+i) B) *(a+i*n+j)C) *(*(a+i)+j) D) *(*a+i)+j4 union{double k;char c;float a;}test;则sizeof(test)的值是: A 。
A)8 B)1 C)4 D)135、下面程序的输出是____D_____#include<stdio.h>void main(){int k=11;printf("k=%d,k=%o,k=%x\n",k,k,k);(%o为8进制输出,%x为16进制输出)}A) k=11,k=12,k=11 B) k=11,k=13,k=13C) k=11,k=013,k=0xb D) k=11,k=13,k=B6、在下列选项中,不正确的赋值语句是____D____.(在变量说明中,不允许连续给多个变量赋初值,而赋值语句允许连续赋值。
如下述说明是错误的:)A) ++t; B) n1=(n2=(n3=0));C) k=i=j; D) a=b+c=1;7、下面合法的C语言字符常量是_____A_____.A) '\t' B) "A" C) 65 D) A8、表达式: 10!=9的值是______D__ ___.A) true B)非零值C) 0 D) 19、C语言提供的合法的数据类型关键字是_____B___.A) Double(应该为double)B) shortC) integer(应该为int)D) Char(应该为char)10、字符(char)型数据在微机内存中的存储形式是__D__.A) 反码B) 补码C) EBCDIC码D) ASCII码11、C语言程序的基本单位是_____C______.A) 程序行B) 语句C) 函数D) 字符12、设int a=12,则执行完语句a+=a-=a*a后,a的值是_____D__A) 552 B) 264 C) 144 D) -26413、执行下面程序中的输出语句后,输出结果是__B____.#include<stdio.h>void main(){int a; printf("%d\n",(a=3*5,a*4,a+5)); }A) 65 B) 20 C) 15 D) 1014、下面程序的输出是__B________.#include<stdio.h>void main(){int x=023; (八进制)printf("%d\n",--x); }A) 17 B) 18 C) 23 D) 2415下面程序的输出的是___C______.#include<stdio.h>void main(){int x=10,y=3;printf("%d\n",y=x/y);}A) 0 B) 1 C) 3 D) 不确定的值16、已知字母A的ASCII码为十进制的65,下面程序的输出是_______A____. #include<stdio.h>void main(){char ch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}A) 67,D B) B,C C) C,D D) 不确定的值17、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为_D_____.A) a<>0 B) !a C) a=0 D) a18、以下程序的输出结果是__D______.#include<stdio.h>void main(){ int x=10,y=10;printf("%d %d\n",x--,--y); }A) 10 10 B) 9 9 C) 9 10 D) 10 919、设有如下定义:int x=10,y=3,z;则语句printf("%d\n",z=(x%y,x/y)); 的输出结果是_D_______.A) 1 B) 0 C) 4 D) 320、为表示关系x≥y≥z,应使用C语言表达式____A__.A) (x>=y)&&(y>=z) B) (x>=y)AND(y>=z)C) (x>=y>=z) D) (x>=y) & (y>=z)21、C语言中非空的基本数据类型包括__B______.(基本数据类型有整型,字符型,浮点型,枚举类型)A) 整型,实型,逻辑型B) 整型,实型,字符型C) 整型,字符型,逻辑型D) 整型,实型,逻辑型,字符型22、若x和y都是int型变量,x=100,y=200,且有下面的程序片段:printf("%d",(x,y)); 上面程序片段的输出结果是___A____.A) 200 B) 100C) 100 200 D) 输出格式符不够,输出不确定的值23、阅读下面的程序#include<stdio.h>void main(){char ch;scanf("%3c",&ch);(%3c表示输入三个字符)printf("%c",ch); (表示输出一个字符)}如果从键盘上输入 abc<回车>则程序的运行结果是__A____.A) a B) b C) c D) 程序语法出错24、阅读下面的程序#include<stdio.h>void main(){int i,j; i=010; j=9;printf("%d,%d",i-j,i+j); }则程序的运行结果是___D_____.A) 1,19 B) -1,19 C) 1,17 D) -1,1725、阅读下面的程序#include<stdio.h>void main(){int i,j,m,n; i=8;j=10; m=++i; n=j++;printf("%d,%d,%d,%d",i,j,m,n);} 程序的运行结果是____C___;A) 8,10,8,10 B) 9,11,8,10C) 9,11,9,10 D) 9,10,9,1126、已知a=12,则表达式a+=a-=a*=a的结果是__A_____.A) 0 B) 144 C) 12 D) -26427、若已定义int a,则表达式a=10,a+10,a++的值是_B__.A) 20 B) 10 C) 21 D) 1128、阅读下面的程序#include<stdio.h>void main(){int i,j;scanf("%3d%2d",&i,&j); printf("i=%d,j=%d\n",i,j); }如果从键盘上输入1234567<回车>,则程序的运行结果是____D____.A) i=123,j=4567 B) i=1234,j=567C) i=1,j=2 D) i=123,j=4529、下面程序的输出结果是___D_____.#include<stdio.h>void main(){int a=-1, b=4, k;k=(++a<=0)&&(b--<=0);(如果&&前面部分为假则&&后面的部分就不被执行,如果前面部分为真则&&后面部分需要被执行)printf("%d,%d,%d\n",k,a,b);}A) 1,1,2 B) 1,0,3 C) 0,1,2 D) 0,0,330、下面叙述错误的是___D___A)一个由数据申明部分和执行语句组成。
c语⾔复习资料复习资料Ch2 数据类型、运算符与表达式1. C程序的结构:C程序是由⼀个或多个源⽂件组成,源⽂件是C程序的编译单位;源⽂件由函数组成的;⼀个程序有且仅有⼀个名字为main( )的函数;函数的定义不可嵌套,即,在⼀个函数内部不可定义另外⼀个函数;程序总是从main函数第⼀条可执⾏语句开始执⾏,在main函数结束;2.标识符合法的标识符的组成;如x1、a、max_int、_num等合法的,2x、x#等不合法,不能⽤关键字,如for、int等,最好不⽤函数名如 printf等。
关键字:查看附录B;如printf、define不是关键字;C语⾔区分⼤⼩写,故For、If等不是关键字3.常量的表⽰形式整型常量:⼗进制、⼋进制、⼗六进制。
如 028、0x2ah不合法;若整数是2个字节,则整数范围-32768-32767之间,32768(错) -037 0xaf均正确实型常量:3.0 2.3e3 2e-4正确,2e3.0错字符常量:注意转义字符,如\n、\72、\x23等均表⽰⼀个字符,如“\t\”name\\address\n”长度为15;’\38’错误字符串常量:变量定义及赋值:变量赋值时的类型应相同或兼容,如int a=3.5、float b=4、char c=97正确,但char ch=”abc”错误4.运算符及表达式运算符的功能、特点:如%要求两侧操作数均为整数;若 / 两侧操作数都是整数表⽰整除;运算符的优先级:复合运算符:如int a=3; 执⾏a+=a-=a*a; 后,a的值是-12;如:n=10,i=4,则赋值运算n%=i+1,n的值是逻辑运算符:掌握&& 和 || 的运算特点;如 i=2,j=3,k=4, if((i++) || (j++)) && k++) printf(“%d,%d,%d”,i,j,k);结果是?设a=3, b=4, c=5,表达式(1)‘a’ && ‘b’、 (2)a<=b 、a || b+c && b-c、(3)!((ab>a结果?如:c=0; 考虑,表达式c=b=a、(a=c)||(b=c)、(a=c)&&(b=c)、a=c=b能正确将c的值赋给变量a,b吗?为什么?关系运算符:注意= =与=的区别,如a=1,b=2 则if(a=3) b=0; 则b的值变化了吗?为什么?条件运算符:运算的特点如:i=1,j=2;执⾏语句n=i>j?i++:j++; 则i和j的值是5.⾃增⾃减:掌握前置与后置的运算特点;如:x=3,则表达式x++的结果是3,x的值变成4;⽽++x的结果是4,x的值也是4;-x++结果是-3,x的值变成4如:x=7,则(x++%3)结果是?6.表达式类型的转换:若char a; int b; float c; double d;则表达式 a*b+d-c 的值类型?7.逗号运算符:逗号表达式的值是最后⼀个表达式的值。
复习A:一、单项选择题1、如果要把常量327存入变量a中,a不能定义的类型是哪一个?()A)int B)char C)long D)float2、若x 为unsigned int 型变量,则执行下列语句后x值为()x = 65535;printf(“%d\n”,x);A)65535 B)1 C)无定值D)-13、有以下程序main(){int a=1,b=2,m=0,n=0,k;k=(n=b>a)||(m=a<b);printf(″%d,%d\n″,k,m);}程序运行后的输出结果是()A)0,0 B) 0,1 C)1,0 D)1,14、在C语言中,如果下面的变量都是int类型,则输出的结果是()。
sum=pad=5; pAd=sum + + ,pAd + +, + + pAd;printf("%d\n",pad);A) 7 B) 6 C) 5 D) 45、以下程序的输出结果是()。
main(){ int a=4,b=5,c=0,d;d=!a&&!b||!c;printf("%d\n",d);}A)1 B)0 C)非0的数D)-16、当执行以下程序段时()。
x=-1;do{x=x*x;}while(!x);A)循环体将执行一次B)循环体将执行两次C)循环体将执行无限次D)系统将提示有语法错误7、全局变量的存储类型可以定义为()。
A)auto或static B)extern或registerC)auto或extern D)extern或static8、定义全局变量时,若变量的的存储类别缺省,则默认的存储类型是()。
A)auto B)registerC)extern D)static9、已知:int a, x; 则正确的赋值语句是()。
A)a=(a[1]+a{2})/2; B)a*=*a+1;C)a=(x=1, x++, x+2); D)a="good";10、已知:int a, *p=&a; 则下列函数调用中错误的是()。
C语言复习 第一章: 总结: (1) C程序是由函数构成的。 这使得程序容易实现模块化。 (2) 一个函数由两部分组成: 函数的首部:例1.3中的max函数首部 int max(int x,int y ) 函数体:花括号内的部分。若一个函数有多个花括号,则最外层的一对花括号为函数体的范围。 函数体包括两部分 : 声明部分:int a,b,c; 可缺省 执行部分:由若干个语句组成。可缺省 注意: 函数的声明部分和执行部分都可缺省, 例如: void dump ( ) { } 这是一个空函数,什么也不做,但是合法的函数 (3) C程序总是从main函数开始执行的,与main函数的位置无关。 (4) C程序书写格式自由,一行内可以写几个语句, 一个语句可以分写在多行上,C程序没有行号。 (5) 每个语句和数据声明的最后必须有一个分号。 (6) C语言本身没有输入输出语句。输入和输出的操作是由库函数scanf和printf等函数来完成的。C对输入输出实行“函数化” 第二章: 算法的特性 1. 有穷性:一个算法包含有限的操作步骤 2. 确定性:算法中的每一个步骤是确定的,含义是唯一的 3. 有零个或多个输入 4. 有一个或多个输出 5. 有效性:算法中每一个步骤应能有效运行
三种基本结构 顺序结构、选择结构、循环结构 顺序结构 选择结构 第三章: 一、数据类型 1.标识符(identifier) 定义:用来标识变量、常量、函数等的字符序列 组成:
只能由字母、数字、下划线组成,且必须是字母或下划线开头,C语言中大小写敏感(如count,Count,COUNT是三个不同的标识符。)不能使用关键字 长度:最长32个字符 命名原则:见名知意 不宜混淆 如l与I, o与0
当型(While型)循环结构 直到型(Until型)循环 2.常量 定义:程序运行时其值不能改变的量(即常数) 分类:(符号常量,直接常量) 符号常量:用标识符代表常量 定义格式: #define 3.变量 概念:其值可以改变的量 变量名与变量值 变量定义的一般格式: 数据类型 变量1[,变量2,…,变量n]; 二、整型变量的分类: 分为四种:基本型、短整型、长整型、无符号型 1.基本型: 用“int”表示 2.短整型: 用“short int”或 “short”表示 3.长整型: 用“long ”或 “long int ”表示 4.无符号型:(修饰符:unsigned) 不存放符号,则不带符号数. 又分无符号整型,无符号短整型, 无符号长整型。分别以unsigned int、unsigned short和unsigned long表示。
各种整型的取值范围: 类型 比特位 取值范围 [signed]int 16 -215~(215-1) Unsigned int 16 0~(216-1) [signed]short 16 -215~(215-1) Unsigned short 16 0~(216-1) [signed]long 32 -231~(231-1) Unsigned long 32 0~(232-1)
三、浮点型数据 1.实型常量(实数或浮点数)表示形式: (1)十进制数形式:数字和小数点组成(必须有小数点) 如0.123, .123, 123.0, 0.0, 123. (2)指数形式:(e或E之前必须有数字;e后必须为整数)如12.3e3 ,123E2, 1.23e4 , e-5 , 1.2E-3.5 2.实型常量的类型 默认double型 在实型常量后加字母f或F,认为它是float 型 如:12.3f 一个浮点型常量可以赋给一个float型,double型,long double型变量,根据变量的类型截取实型常量中相应的有效位数。 1.浮点型数据在内存中的存放形式 浮点型数据是按照指数形式存储的。系统把一个浮点数据分成小数部分和指数部分,分别存放。指数部分采用规范化的指数形式。 2.浮点变量分类 1) 单精度(float型) 2) 双精度(double型) 3) 长双精度(long double型) 3.字符常量 定义:用单引号括起来的单个普通字符或转义字符 转义字符:反斜线后面跟一个字符或一个代码值表示 4.C语言的运算符 1.算术运算符:(+ - * / % ++ --) 2.关系运算符:(< <= == > >= !=) 3.逻辑运算符:(! && ||) 4.位运算符 :(<< >> ~ | ^ &) 5.赋值运算符:(= 及其扩展) 6.条件运算符:(?:) 7.逗号运算符:(,) 8.指针运算符:(* &) 9.求字节数 :(sizeof) 10.强制类型转换:(类型) 11.分量运算符:(. ->) 12.下标运算符:([]) 13.其它 :(如函数调用运算符( ))
5..算术运算符和表达式 基本算术运算符: + - * / % 结合方向:从左向右 优先级: - ---->* / % -----> + - 6.自增、自减运算符++ -- 作用:使变量值加1或减1 种类: 前置 ++i, --i (先执行i+1或i-1,再使用i值) 后置 i++,i-- (先使用i值,再执行i+1或i-1) 说明: ++ -- 不能用于常量和表达式,如5++,(a+b)++ ++ --结合方向: 自右向左 优先级:- , ++ , -- > * , / , % > + , - 四、逗号运算符和表达式 逗号运算符(顺序求值运算符) 基本形式:表达式1,表达式2 扩展形式:表达式1,表达式2,…表达式n 结合性:从左向右 逗号表达式的值:等于表达式2的值 用途:常用于循环for语句中 注意:并不是任何地方出现的逗号都是作为逗号运算符。例如函数参数也是用逗号来间隔的。 如: printf(“%d,%d,%d”,a,b,c); “a,b,c”并不是一个逗号表达式,它是printf函数的3个参数 printf(“%d,%d,%d”,(a,b,c),b,c) “(a,b,c)”是一个逗号表达式,它的值等于c的值。 第四章: 一、格式输出函数 格式:printf(“格式控制串”,输出表) 功能:按指定格式向终端输出若于个任意类型的数据 输出表:(此项是可选的)输出表中是需要输出的一些数据,也可以是表达式。如果要输出的数据不止1个,相邻2个之间用逗号分开。例: (1)printf("I am a student.\n"); (2)printf("%d",3+2); (3)printf("a=%f b=%5d\n", a, a+3); 必须强调:“格式字符串”中的格式符,必须与“输出项表”中、输出项的数据类型一致,否则会引起输出错误。 二、格式符: 1.d格式符──以带符号的十进制整数形式输出。 %d %md %ld %mld printf("n=%d,n=%5d,n=%2d,n=%ld",123,123,123,135790); 说明:m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于则按实际长度输出 。 输出结果:n=123,n=••123,n=123,n=135790 2. S格式符──输出一个字符串 1) %S:按实际字符串长度输出 2) %ms:输出的字符串占m列,如果字符串长度大于m, 则突破m的限制,将字符串全部输出。若串长小于m 则左补空格。 3) %-ms:如果串长小于m 则在m 列范围内,字符左靠, 右补空格。 4) %m.ns:输出占m列,但只取字符串左端的n个字符, 且这n个字符输出在m列的右端,左端补空格 5) %-m.ns:其中m,n的含义同上,n个字符输出在m 列的 左侧,右端补空格 第五章: 一、.关系运算符及其优先次序 1. < (小于) 2. <= (小于或等于) 3. > (大于) 4. >= (大于或等于) 5. == (等于) 6. != (不等于) 说明: 关系运算符的优先级低于算术运算符 关系运算符的优先级高于赋值运算符 二、用关系运算符将两个表达式(可以是算术表达式或关系表达式,逻辑表达式,赋值表达式,字符表达式)接起来的式子,称关系表达式。 C语言中没有专用的逻辑值,1代表真,0代表假 三、逻辑运算符及其优先次序 && (逻辑与) 相当于其他语言中的AND || (逻辑或) 相当于其他语言中的OR ! (逻辑非) 相当于其他语言中的NOT 例:a&&b 若a,b为真,则a&&b为真。 a||b 若a,b之一为真,则a||b为真。 !a 若a为真,则!a为假。 优先次序: !(非)->&&()->||() • 逻辑运算符中的“&&”和“||”低于关系运算符,“!”高于算 术运算符 四、短路效应