C语言复习题(1)
- 格式:docx
- 大小:15.78 KB
- 文档页数:22
一. 选择题 (单项)1. C 语言中的标识符只能由字母、数字和下划线3种字符组成,且第一个字符——。
A必须为字母B必须为下划线C必须为字母或下划线 D 可以是字母、数字和下划线中的任一种字符2.下面 4个选项中,均是 C 语言关键字的选项是——。
Aauto enum includeBswitch typedef continueC signed union scanfD if struct type3.下面 4个选项中,均是不合法的用户标识符的选项是——。
A A P_0 doBfloat la0_AC b- a goto int D_123 temp INT4.在 C 语言中,int 、char 和 short 三种类型的数据在内存中所占用的字节数——。
A由用户自己定义B均为 2 个字节C是任意的D由所用机器的机器字长决定5.下面 4 个选项中,均是合法浮点数的选项是——。
A+1e+15e-9.403e2B- .60 12e-4-8e5C123e 1.2e-.4 +2e - 1D-e3 .8e-4 5.e -06.下面不正确的字符串常量是——。
AˊabcˊB〞 12ˊ12〞C〞0 〞D〞〞7.假设所有的变量均为整型,则表达式(a=2,b=5,b++, a+b)的值是——。
A7B8C6D28.以下正确的叙述是——。
A在 C 语言中,每行只能写一条语句B若 a 是实型变量, C 程序中允许赋值a=10,因此实型变量中允许存放整型数C在 C 程序中,无论整数还是实数,都能被准确无误的表示D在 C 程序中, % 是只能用于整数运算的运算符9.以下表达式值为 3 的是——。
A 16-13%10B2+3/2C 14/3-2D(2+6)/(12- 9)10.设变量 a 是整型, f 是实型, i 是双精度型,则表达式 10+ˊ aˊ +i*f 值的数据类型为——。
A intB floatC doubleD 不确定11.在 C 语言中, char 型数据在内存中的存储形式是——。
C语言精编100题一、单选题1.由C语言编写的代码程序( )A. 可直接执行B. 是一个源程序C. 经过编译即可执行D. 经过编译解释才能执行2.按照C语言规定的用户标识符命名规则,不能出现在标识符中的是( )A. 大写字母B. 中划线C. 数字字符D. 下划线3.下列选项中,不能用作标识符的是( )A. _1234_B. _1_2C. int_2_D. 2_int_4.以下选项中合法的用户标识符是( )A. longB. _2TestC. 3DmaxD. A.dat5.以下不能定义为用户标识符的是( )A. MainB. _0C. _intD. sizeof6.下列定义变量的语句错误的是( )A. int _int;B. double int_;C. char For;D. float US$;7.在C语言中,合法的实型常数是( )A. 5E2.0B. E-3C. 2E0D. 1.3E8.在C语言中,合法的实型常数是( )A. 1.2E0.5B. 3.14159EC. 5E-3D. E159.以下选项中,不能作为合法常量的是( )A. 1.234e04B. 1.234e0.4C. 1.234e+4D. 1.234e010.以下不合法的数值常量是( )A. 011B. le1C. 8.0E0.5D. 0xabcd11.在C语言中,非法的字符常量是( )A.‘\t’B.‘\17’C. "\n"D.‘\xaa’12.以下不合法的字符常量是( )A.‘\018’B.‘\"’C.‘\\’D.‘\xcc’13.下列运算符中优先级最高的运算符是( )( )A. <=B. =C. %D. &&A. ==B. /C. =D. >=14.以下程序的输出结果是( )main(){ int a=3,b=4;printf("%d\n",a<=b);}A. 3B. 4C. 1D. 015.在C语言中,以下非法的表达式是( )A. 0<=x<=100B. i=j==0C. (char)(65+3)D. x+1=x+116.在C语言中,以下非法的赋值语句是( )A. j++;B. ++(i+1);C. x=j>0;D. k=i==j;17.表达式3.6-5/2+1.2+5%2的值是( )A. 4.3B. 4.8C. 3.3D. 3.818.设有语句:int a=3;则执行了语句a+=a-=a*a;变量a的值是( )A. 3B. 0C. 9D. -1219.设有语句:int x=10;则执行了语句x+=x-=x-x;变量x的值是( )A. 10B. 20C. 40D. 3020.以下程序的输出结果是( )( )( )( )( )⑴ main(){ int i=10,j=1;printf("%d,%d\n",i--,++j);}A. 9,2B. 10,2C. 9,1D. 10,1⑵ main(){ int a=12,b=12;printf("%d %d\n" ,--a,++b);}A. 10 10B. 12 12C. 11 10D. 11 13⑶ main(){ int x=023;printf("%d\n",--x);}A. 17B. 18C. 23D. 24⑷ main(){ int x=10,y=10;printf("%d %d\n",x--,--y);}A. 10 10B. 9 9C. 9 10D. 10 9⑸ main(){ int i=010,j=10;printf("%d,%d\n",++i,j--);}A. 11,10B. 9,10C. 010,9D. 10,921.以下程序的输出结果是( )main(){ int x=100,y=200;printf("%d\n",(x,y)); }A. 200B. 100C. 100 200 D)200 10022.以下程序的输出结果是( )main(){ int x=10,y=3,z;printf("%d\n",z=(x%y,x/y));}A. 1B. 0C. 4D. 323.int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是( )A. k++B. k+=1C. ++kD. k+124.以下程序的输出结果是( )main(){ int x,y,z;x=y=1;z=x++,y++,++y;printf("%d,%d,%d\n",x,y,z); }A. 2,3,3B. 2,3,2C. 2,3,1D. 2,2,125.设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y的值为( )A. 1B. 2C. 3D. 426.设int x=-1;执行表达式++x||++x||++x||++x,x的值是( )A. 0B. 1C. 2D. 427.以下程序的输出结果是(1) main(){ int k=11; printf("k=%d,k=%o,k=%x\n",k,k,k);}()A. k=11,k=12,k=11B. k=11,k=13,k=13C. k=11,k=013,k=0xbD. k=11,k=13,k=b(2) main(){ int k=17; printf("%d,%o,%x\n",k,k,k); }()A. 17,021,0x11B. 17,17,17C. 17,0x11,021D. 17,21,1128.运行时从键盘上输入9876543210<CR>(<CR>表示回车),则该程序的输出结果是()main(){ int a;float b,c;scanf("%2d%3f%4f\n",&a,&b,&c);printf("a=%d,b=%f,c=%f\n",a,b,c);}A. a=98,b=765,c=4321B. a=10,b=432,c=8765C. a=98,b=765.000000,c=4321.000000D. a=98,b=765.0,c=4321.029.设变量均已正确定义,若要通过scanf("%d%c%d%c",&a1,&c1,&a2,&c2);语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。
C语言习题集第一章C语言概述复习要点:1. 程序的构成,main函数和其他函数。
2.语句,注释3.运行C程序的步骤和方法习题:1.C程序是由函数构成的,一个C程序中至少包含一个main函数。
2.函数是C程序的基本单位。
(最小单位是表达式)3.C程序有且只有一个main函数。
4.C程序从main函数开始执行。
5.C程序注释符是由/*和*/组成,且不能嵌套使用。
6.C程序的语句是以; 结束。
7.C程序一条语句可分多行写,需要以为连接符。
(可以直接换行)8.C程序可以用{ 和} 将多条语句括起来,形成复合语句。
9.上机运行一个C程序必须经过源代码输入,编译,连接,运行4个步骤。
10.C程序的源文件扩展名是。
c 。
11.以下叙述中正确的是(C)A)C语言程序将从源程序中第一个函数开始执行B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C)C语言规定必须用main作为主函数名,main必须小写,程序将从此开始执行,在此结束D)main可作为用户标识符,用以命名任意一个函数作为主函数12.以下叙述中错误的是(D)A)C语言源程序经编译后生成后缀为.obj的目标程序B)C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件C)用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中D)C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令13.以下不是语句的是(A)A) a=10 B)a=b+c;c=20;C) ; D){a=b;b++;}14.运行以下程序main(){int a=10; /* 定义一个变量 aa=20; */printf(“%d”,A); 此程序应该改写为:printf(“%d”,a)}输出的结果是 B 。
A) 10 B)2015.牢记VC++6.0的出错提示英文提示中文实际意义missing ; , ( { 等表示缺少;,( {'T' : undeclared identifier T没有定义(T要先定义然后才能使用)'sqrt' undefined; sqrt如果是函数名则表示它的头文件没有包含'T' : redefinition T重复定义(可能是多次定义了T)Cannot open include file 头文件的拼写或路径的不对第二章数据类型,运算符与表达式复习要点:1. C的数据类型(整型,字符型,浮点型)及其定义方法。
一、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语言关键字的选项是。
一、填空题(每空 1 分,共20 分)1.程序的三种基本结构为(顺序)、(选择)和(循环)。
2.在C 语言中,用(;)表示语句的结束。
3.语句printf("%%d%d",123);将输出:(“%d123 )。
4.逻辑运算的结果值是(0 )或( 1 )。
5.数组 int a[3][4];共定义了(12 )个数组元素。
6.在 C 语言中,正确的标识符是由(数字、字母、下划线)组成的,且由(字母和下划线)开头的。
7.一个算法应具有的特点有:(有穷性)、(确定性)、有零个或多个输入、有一个或多个输出、有效性。
8.在程序执行过程中,其值不发生改变的量称为(常量),其值可变的量称为(变量)。
9.若有定义:int m=5,y=2;则执行表达式y+=y-=m*=y 后的y 值是(-16 )。
10.在三种正规循环中,当条件表达式的值为(0 )时,就结束循环。
11.C 语言中函数的参数分为(形式参数)和(实际参数)。
12.当函数的数据类型省略时,默认的数据类型为(int 型或者整数型)型。
13.按变量地址访问变量的方法叫(直接访问),通过存放变量地址的变量去访问变量的方法叫(间接访问)。
14.若有定义:int [3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]得到的初值是(0 ),a[2][1]得到的初值是( 6 )。
15.文件包含的一般形式为(#include <文件名> )。
16.宏定义中宏名一般用大写字母表示,容易做到(一改全改)。
17.结构体是一种(构造)数据类型用途是把(不同类型)的数据组合成一个整体。
18.位运算的运算对象只能是(整型)或(字符型)数据,而不可以是其他类型的数据。
19.(文件)是存储在外部介质上数据的集合,是操作系统数据管理的单位。
20.设有“int x=2,y”说明,则逗号表达式“y=x+5,x+y”的值是(9 )。
C语言程序设计1(专升本)期末考试试题及参考答案C语言程序设计复习题1(专升本)一、选择题1.用C语言编写的代码程序()。
A)可立即执行B)是一个源程序C)经过编译即可执行D)经过编译解释才能执行2.在C语言中,下列属于构造类型的是()A)整型B)字符型C)实型D)数组类型3.C语言中,运算对象必须是整型数的运算符是()。
A)% B)\ C)% 和\ D)**4.下列常数中,合法的C 常量是()。
A)-0. B) '105' C)'AB' D)"35"5.设整型变量a值为9,则下列表达式中使b的值不为4的表达式()。
A)b=a/2 B)b=a%2 C)b=8-(3,a-5) D)b=a>5?4:26.下列符号中,可以作为变量名的是()。
A)+c B)*X C)_DAY D)next day7.有以下程序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。
则输出结果是()。
A)6,5,A,B B)6,5,65,66 C)6,5,6,5 D)6,5,6,68.以下叙述中错误的是()。
A)C语句必须以分号结束B)复合语句在语法上被看作一条语句C)空语句出现在任何位置都不会影响程序运行D)赋值表达式末尾加分号就构成赋值语句9. 以下叙述中正确的是()。
A)调用printf函数时,必须要有输出项B)使用putchar函数时,必须在之前包含头文件stdio.hC)在C语言中,整数可以以十二进制、八进制或十六进制的形式输出D)调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII码10能正确表示逻辑关系“a≥=10或a≤0”的C语言表达式是()。
一选择题1、一个算法应该具有“确定性”等五个特性,下面对另外4个特性的描述中错误的是( B )A、有零个或多个输入B、有零个或多个输出C、有穷性D、可行性2、C语言中最简单的数据类型包括( B )A、整型、实型、逻辑型B、整型、实型、字符型C、整型、字符型、逻辑型D、整型、实型、逻辑型、字符型3、设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是( D )A、6.500000B、6C、5.500000D、6.0000004、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是( B )A、INPUT x、y、z;B、scanf("%d%d%d",&x,&y,&z);C、scanf("%d%d%d",x,y,z);D、read("%d%d%d",&x,&y,&z);6、对两个字符数组a和b进行初始化char a[]="ABCDEF";char b[ ]={'A','B','C','D','E','F'}; 则以下叙述正确的是( D )A、a与b数组完全相同B、a与b长度相同C、a和b中都存放字符串D、a数组比b数组长度长7、为了避免在嵌套的条件语句if――else中产生二义性,c语言规定:else子句总是与( B )配对A、缩排位置相同的ifB、其之前最近的ifC、其之后最近的ifD、同一行上的if9、以下错误的if语句是( C )A、if(x>y) z=x;B、if(x= =y) z=0;C、if(x!=y) printf("%d",x) else printf("%d",y);D、if(x<y) { x++;y--;}10、若有说明:int a[3][4];则对a数组元素的非法引用是( D )A、a[0][2*1]B、a[1][3]C、a[4-2][0]D、a[0][4]11、程序char c[5]={‘a’,’b’,’\0’,’c’c,’\0’}; printf(“%s”,c);}的运行结果是( D )A、'a''b'B、abC、ab cD、ab空格12、一个C程序的执行是从( A )A、本程序的main函数开始,到main函数结束B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C、本程序的main函数开始,到本程序文件的最后一个函数结束D、本程序文件的第一个函数开始,到本程序main函数结束13、若变量已正确定义,以下非法的表达式是( B )A、a/=b+cB、a%(4.0)C、a=1/2*(x=y=20,x*3)D、a=b=c14、判断字符串a是否大于b,应当使用( D )A、if (a>b)B、if (strcmp(a,b))C、if (strcmp(b,a)>0)D、if (strcmp(a,b)>0)15、以下关于运算符优先顺序的描述中正确的是( C )A、关系运算符<算术运算符<赋值运算符<逻辑与运算符B、逻辑与运算符<关系运算符<算术运算符<赋值运算符C、赋值运算符<逻辑与运算符<关系运算符<算术运算符D、算术运算符<关系运算符<赋值运算符<逻辑与运算符16、使用语句scanf(“a=%f,b=%d”,&a,&b);输入数据时,正确的数据输入是:( A )A、a=2.2,b=3B、a=2.2 b=3C、2.2 3D、2.2,317、表示关系12<=x<=y的C语言表达式为:( B )A、(12<=x)&(x<=y)B、(12<=x)&&(x<=y)C、(12<=x)|(x<=y)D、(12<=x)||(x<=y)18、语句for(a=0,b=0;b!=100&&a<5;a++) scanf(“%d”,&b); scanf最多可执行次数为:( C )A、4B、6C、5D、121、6位无符号二进制数能表示的最大十进整数是( B )A) 64 B)63 C)32 D)3122、以下合法的用户标识符是( D )A)1st B) break C) Two Words D) B75723、设x和y均为int型变量,则以下语句:x+=y;y=x-y;x-=y;的功能是( D )A、把x和y按从大到小排列B、把x和y按从小到大排列C、无确定结果D、交换x和y中的值25、若有以下程序段:int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是( A )A、0B、0.5C、1D、226、设char ch='A';则ch=(ch>='A'&&ch<='Z')?(ch+32):ch的值是( B )A、AB、aC、ZD、z27、若已定义char s[10];在下面表达式中不能表示s[1]的地址的是( B )A、s+1B、s++C、&s[0]+1D、&s[1]28、对两个字符数组a和b进行初始化char a[ ]="ABCDEF"; char b[ ]={'A','B','C','D','E','F'}; 则以下叙述正确的是( D )A、a与b数组完全相同B、a与b长度相同C、a和b中都存放字符串D、a数组比b数组长度长29、有说明:char *language[]={"FORTRAN","BASIC","PASCAL","JAVA","C"};则表达式*language[1]>*language[2]比较的是( A )A、字符B和字符PB、字符串FORTRAN和字符串BASICC、字符F和字符BD、字符串BASIC和字符串PASCAL30、已知:int a[]={1,2,3,4,5,6},*p=a;则值为3的表达式是( A )A、p+=2,*(p++)B、p+=2,*++pC、p+=3,*p++D、p+=2,++*p31、下列关于赋值运算符的表述中,错误的是( B )A、赋值运算符优先级高于逗号运算符B、赋值运算符的结合性是从左至右C、赋值运算符是双目运算符D、赋值运算符可在表达式中连用32、设x,y为浮点型变量,合法赋值语句是( A )A、x=8+y;B、(float)3C、y=(x%2)/10D、*x=10;33、已定义ch为字符型变量,以下赋值语句中错误的是( B )A、ch='\';B、ch=62+3;C、ch=' ';D、ch='\xaa';34 、已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是( C )A、scanf("%2d%2d%2d",&i,&j,&k);B、scanf("%d %d %d",&i,&j,&k);C、scanf("%d,%d,%d",&i,&j,&k);D、scanf("i=%d,j=%d,k=%d",&i,&j,&k);35、若w,x,y,z,m均为int型变量,则执行语句w=1;x=2;y=3;z=4; m=(w<y)?w:x; m=(m<y)?m:y; m=(m<z)?m:z;后的m值是( A )A、1B、2C、3D、436、c语言中( D )A、不能使用do-while语句构成的循环B、do-while语句构成的循环必须用break语句才能退出C、do-while语句构成的循环,当while语句中的表达式值为非零时结束循环D、do-while语句构成的循环,当while语句中的表达式值为零时结束循环37、以下描述正确的是( C )A、由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句。
复习题(一)1。
用高级语言编写的源程序必须通过___________程序翻译成二进制程序才能执行,这个二进制程序称为____________程序。
【答案】编译目标2。
下列符号串中,属于C语言合法标识符的是()①else ②a-2 ③_00 ④00【答案】③3.下列说法中,正确的是()①主函数名是由程序设计人员按照“标识符”的规则选取的②分号和回车符号都可以作为一个语句的结束符号③在程序清单的任何地方都可以插入一个或多个空格符号④程序的执行,总是从源程序清单的第1行开始【答案】③4.-12345E-3代表的十进制实数是________________________.【答案】—12.3455.设字符型变量ch中存放字符“A”,则执行“ch+++2”后,ch中的字符是________。
【答案】B6.设字符型变量ch1中存放的字符是“A",字符型变量ch2中存放的字符是“B”,则执行“!(ch1=’B')&&(ch2='C')”的运算后,变量ch2中的字符是_____________.【答案】B6-1.设整型变量m,n,a,b,c,d均为1,执行“(m=a〉b)&&(n=a>b)”后m,n 的值是()①0,0 ②0,l ③1,0 ④1 ,l【答案】②。
7.设整型变量x1和x2的值均为10,则表达式“x1/=x2-4”的值是_______________. 【答案】l8.在C语言中,如果某个关系表达式成立(真),则该关系表达式的值是____;如果某个逻辑表达式为假,则该逻辑表达式的值是_________.【答案】1 09.设有整型变量x,如果表达式“!x”值为0,则x的值为_________;如果表达式“!x"值为1,则x的值为___________。
【答案】非010.下列表达式中,不属于逗号表达式的是()①a=b,c ②a,b=c ③a=(b,c) ④a,(b=c)【答案】③11.在三种选择结构中,能用2个条件,控制从3个操作中选择一个操作执行的选择结构是______选择结构【答案】多分支12.在三种循环结构中,先执行循环操作内容(即循环体),后判断控制循环条件的循环结构是______循环结构。
信息学奥赛辅导(C语言一)信息学奥赛辅导:C语言复习题(一)第1~3章练习题一、选择题1、一个C语言程序总是从____A、主过程开始执行B、主函数开始执行C、子程序开始执行D、主程序开始执行2、若num、a、b和c都是int型变量,则执行表达式num=(a=4,b=16,c=32)后num的值为_A、4B、16C、32D、523、下面四个选项中,均是C语言关键字的选项是____A、auto enum includeB、switch typedef continueC、signed union scanfD、if struct type4、下面四个选项中,均是合法整型常量的选项是____A、160 -0xffff 011B、-0xcdf 01a 0xeC、-01 986,012 0668D、-0x48a 2e5 0x5、下面四个选项中,均是合法浮点数的选项是___A、+1e+1 5e-9.4 03e2B、-.60 12e-4 -8e5C、123e 1.2e-.4 +2e-1D、-e3 .8e-4 5.e-0A、'\'' '\\' '\n'B、'\' '\017' '\"'C、'\018' '\f' 'xab'D、'\\0' '\101' 'xlf'7、下面正确的字符常量是____A、'\X17'B、'\80'C、'\\'D、"\n"8、下面四个选项中,均是正确的八进制数和十六进制数的选项是____A、-10 0x8f -011B、0abc -017 0xcC、010 -0x11 0xf1D、0a12 -0x123 -0xa9、下面四个选项中,均是正确的数值常量或字符常量的选项是____A、0.0 0f 8.9e '&'B、"a" 3.9E-2.5 1e1 '\"'C、'3' 011 0xFF00 0aD、+001 0xabcd 2e2 50.10、若有代数式,则正确的C语言表达式是____A、2*ln(x)*cos(x)/3*xB、2*ln(x)*cos(x)/(3*x)C、2*log(x)*cos(x)/3*xD、2*log(x)*cos(x)/(3*x)11、若有说明语句:char ch1='\065';char ch2="2";char ch3='2';则:ch1中____,ch2中____,ch3中____A、包含1个字符B、包含2个字符C、包含3个字符D、字符个数不确定,说明不正确12、若有运算符:>、*=、?:、%、sizeof,则将它们按运算的优先级排列的正确次序为(由低至高)____A、*=→?:→%→>→sizeofB、?:→*=→>→%→sizeof13、若有以下类型说明语句:char a;int b;float c;double d;则表达式a*b+d-c的结果类型为____A、floatB、charC、intD、double14、若有变量说明:int a=0,b=0,c=0;,以下符合C语言语法的赋值表达式是____A、a=9+b+c=a+9B、a=9+b;c=a+9;C、a=(9+b,b++)D、a=9+b++=a+715、已知字母A的ASCII码为(65)10,变量ch1为字符型,则执行语句ch1='A'+'6'-'3';后,ch1中的值为____A、DB、68C、一个不确定的值D、C16、以下运算符中优先级最高的运算符是____A、&&B、++C、?:D、!=17、若有定义:int k=7;float a=2.5,b=4.7;则表达式a+k%3*(int)(a+b)%2/4的值是___A、2.500000B、2.7500000C、3.500000D、0.00000018、sizeof(float)是____A、双精度型表达式B、一个整型表达式C、一个函数调用D、一个不合法的表达式19、设变量y为float类型,x为int类型,则以下能实现将y中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是____A、y=(y*100+0.5)/100.0B、x=y*100+0.5,y=x/100.0C、y=y*100+0.5/100.0D、y=(y/100+0.5)*100.020、设int类型的数据长度为2个字节,则unsigned int类型数据的取值范围是____A、0~255B、0~65535C、-32768~+32767D、-256~+25521、若有以下定义,则能得到值为3的表达式是____(int m=7,n=12)A、n%=(m%=5)B、n%=(m-m%5)C、n%=m-m%5D、(n%=m)-(m%=5)22、若有说明:int a=1,b=2,c=3,d=4;则表达式a<b?a:c<d?c:d的值是___< bdsfid="170" p=""></b?a:c<d?c:d 的值是___<>A、4B、3C、2D、123、若x为int类型,则逗号表达式(x=4*5,x*5),x+25的结果是___,x的值是___A、20B、100C、表达式不正确D、4524、putchar函数可以向终端输出一个____A、整型变量值B、实型变量值C、字符串D、字符或字符型变量值25、若有以下变量说明和数据的输入方式,则正确的输入语句为('└─┘'代表空格)____变量说明:float x1,x2;数据的输入方式:4.52<回车>3.5<回车>A、scanf("%f,%f",&x1,&x2);B、scanf("%f%f",&x1,&x2);C、scanf("%3.2f└─┘%2.1f",&x1,&x2);D、scanf("%3.2f%2.1f",&x1,&x2);26、若运行以下程序时,从键盘输入25,13,10<回车>,则输出结果为___{int a1,a2,a3;scanf("%d%d%d",&a1,&a2,&a3);printf("a1+a2+a3=%d\n",a1+a2+a3);}A、a1+a2+a3=48B、a1+a2+a3=25B、a1+a2+a3=10D、不确定值27、已知a、b、c为int类型变量,若有输入语句:scanf("a=%db=%dc=%d",&a,&b,&c);为使a值为1,b值为3,c值为2,从键盘输入数据的正确形式应当是____A、132<回车>B、a=1b=3c=2<回车>C、1<回车>3<回车>2<回车>D、a=1<回车>b=3<回车>c=2<回车>28、以下能正确定义整型变量x、y和z并为其赋初值5的语句是____A、int x=y=z=5;B、int x,y,z=5;C、int x=5,y=5,z=5;D、x=5,y=5,z=5;29、执行下面程序段后,x的值是____int x;printf("%d\n",(x=3*5,x+5));30、下面程序段的输出结果是____int a=023;printf("%d\n",--a);A、23B、17D、2431、已知ch是字符型变量,则不正确的赋值语句是____A、ch=5+9;B、ch='\0';C、ch='7'+'9';D、ch='a+b';32、设x,y是float型变量,则不正确的赋值语句是____A、++x;B、y=int(5);C、x*=y+1;D、x=y=0;33、设有说明:double b=0.5,c=1.5;int a=10;则正确使用了C语言库函数的赋值语句是____A、c=asin(c)+fabs(a);B、b=log10(b)+pow(b);C、c=sqrt(b-c);D、a=(int)(atan2((double)a,b)+exp(b-0.2));34、以下程序段的输出结果是____int i=1,j=4,k=2;float x=5.5,y=9.0,z;z=(i+j)/k+sqrt((double)y)*1.2/k+x;printf("%f\n",z);A、9.800000B、9.300000C、8.500000D、8.00000035、若a为int类型变量,则执行以下程序段后a的值为____a=5;a*=a/=a++;B、1C、40D、336、若a和b均为int型变量,则执行以下程序断后x的输出是____x=15;y=15;printf("%d\n",x%=(y%=2));A、0B、1C、6C、1237、若x为unsigned int类型变量,则执行以下程序段后x的值是____x=65535;printf("%d\n",x);A、65535B、1C、无定值D、-138、以下语句的执行结果是____printf("%d\n",NULL);A、1B、0C、-1无定值39、若x为int类型变量,则执行以下程序段后的输出结果是____x=0xDEF;printf("%4d,%4o,%4x\n",x,x,x);A、3567,6757,defB、3567,6757,xdefC、3567,06757,0xdefD、3567,6757,0def40、若a、b、c均为int型变量,则执行以下程序段后的输出结果为____b=(a=10,a+5,c=10);printf("a=%d,b=%d,c=%d\n",a,b,c);c=(a=10,b=5,a+b);printf("a=%d,b=%d,c=%d\n",a,b,c);A、a=10,b=15,c=10B、a=10,b=10,c=10a=10,b=5,c=10 a=10,b=5,c=10C、a=10,b=10,c=10D、a=10,b=10,c=10a=10,b=5,c=15a=10,b=5,c=541、若a1、a2、a3、a4均为char类型变量,则执行以下程序段后的输出结果为____a1='1';a2='2';a3='3';a4='4';printf("%1c\n",a1);printf("%2c\n",a2);printf("%3c\n",a3);printf("%4c\n",a4);A、1B、1C、1D、输出格式的描述符不正确2 2 023 3 0034 4 000442、执行语句printf("The program's name is c:\\tools\book.txt");后的输出是____B、The program's name is c:\tools book.txtC、The program's name is c:\\tools book.txtD、The program's name is c:\toolook.txt43、设a、b、c、d均是int类型变量,为了使以下程序段的输出为:1234+123+12+1,正确的输入形式应当是____scanf("%4d+%3d+%2d+%1d",&a,&b,&c,&d);printf("%4d+%3d+%2d+%1d",a, b, c, d);A、1234123121<回车>B、1234123412341234<回车>C、1234+1234+1234+1234<回车>D、1234+123+12+1<回车>44、设c1、c2均是char类型变量,则以下不正确的函数调用是____A、scanf("c1=%cc2=%c",&c1,&c2);B、getchar( )C、putchar(c2);D、putchar(c1,c2)45、逻辑运算符两侧运算对象的数据____A、只能是0或1B、只能是0或非0正数C、只能是整型或字符型数据D、可以是任何类型的数据46、判断char型变量c1是否为大写字母的正确表达式是____A、'A'<=c1<='Z'B、(c1>='A')&(c1<='Z')C、(c1>='A')&&(c1<='Z')D、('A'<=c1) AND ('Z'>=c1)47、执行以下程序段后的a值是___,b的值是___,c的值是___int a=5,b=6,c=1,x=2,y=3,z=4;A、0B、6C、1D、548、设i、j、和k是int型变量,且i=3,j=4,k=5,则以下值为0的表达式是_A、'i'&&'j'B、i<=jC、i||j+k&&j-kD、!((i<j)&&!k||1)< bdsfid="334" p=""></j)&&!k||1)<>49、设ch是char类型变量,其值是A,则以下表达式的值是____ch=(ch>='A'&&ch<='Z')?(ch+32):chA、ZB、AC、aD、z50、若希望当num的值为奇数时,表达式的值为“真”,num 的值为偶数时,表达式的值为“假”。
c语⾔复习题⼀复习题⼀⼀、选择题1.以下程序的输出结果是( B )。
#include “stdio.h ”main( ){ printf(“%d\n ”,‘A ’);}A.不确定值B.65C. 97D.A2. 以下程序的输出结果是( C )main( ){ char c1=‘7’,c2=‘0’;printf(“%c,%c,%d\n ”,c1,c2,c1-c2);}A.输出出错信息B.7,0,5C.7,0,7D.6,0,73. 以下变量说明正确的是( C )A.Int a,b;B.int x,float y;C. int a,x;D.int a,x4.若int a, b; scanf("%d%d", &a, &b); 不可以⽤( A )作为输⼊的分隔符。
A.,B. 空格C. 回车D. TAB 键5.设x=2.5, a=7, y=4.7 则表达式x+a%3*(int)(x+y)%2/4的值为( B )A. 0B. 2.5C.不确定D.36. 以下变量x.、y 、z 均为double 类型且已正确赋值,不能正确表⽰数学式⼦zy *x 的C 语⾔表达式是( A ) A. x/y*z B. x*(1/(y*z)) C. x/y*1/z D. x/y/z7. 下⾯(A )是正确的变量名。
A. xyB. 2xyC. x+yD.for8. 设有变量说明:int x=5,y=3;那么表达式y=x>y?(x=1):(y=-1);运算后,x 和y 的值分别是( B )相当与if 语句,问号前⾯成⽴是则执⾏冒号前不成⽴是执⾏冒号后A. 1和-1B. 1和1C. 5和1D. 1和39.以下合法的数组定义是( D )A.int a[]=“string ”;B.int a[5]={0,1,2,3,4,5};C.char a=“string”;D.int a[]={0,1,2,3,4,5};10.设有如下定义char s1[30]=“12345”;printf(“%d\n”,strlen(s1)记数函数直到出现\0是停⽌记数;则输出结果是( B )A.4B. 5C. 9D. 1011.以下程序段中内循环体总的执⾏次数是( A )for(i=5;i>=1;i--)for(j=0;j<4;j++){…}A.20B.24C.25D.3012.语句b=3+a--;表达式的功能,可以由下⾯的(C)的两个语句来实现。
复习题库
当n=5时
93.有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它
插入到数组中。
94.将一个数组中的值按逆序重新存放。
例如,原来顺序为8,6,5,4,1。
要求
改为1,4,5,6,8
95.编程先输入某班10个学生某门课的成绩(成绩均为float型数据),
对全班10个学生成绩进行由高到低排序,并打印输出排序结果。
96.从键盘任意输入某班10个学生的成绩,输出最高分并统计出不及格
人数。
97.写一个判断素数的函数,在主函数输入一个整数,输出是否为素数的
信息
98.编写函数实现两个整型变量值的交换。
99.用递归调用的方法求n!,要求n由用户输入。
100.从键盘任意输入10个整数并放入一个数组,用函数编程实现将其中最大数与最小数的位置对换后,再输出调整后的数组。
101.写一个函数,使给定的一个3X3的二维整形数组转置,即行列互换102.写一个函数,将两个字符串连接
103.写一个函数,使输入的一个字符串按反序存放。
104.输入两个实数,用一个函数求出它们之和。
105.有一个一维数组score,内放10个学生成绩,写一个函数求平均成绩。
106.输出所得水仙花数,所谓水仙花数是指一个数3位数,其各各位数字立方和等于其本身, 例如: 153 = 1*1*1 + 3*3*3 + 5*5*5。
《C语言程序设计》复习题有答案1《C语言程序设计》复习题一、填空题1、 C 语言的源程序必须通过编译和链接后,才能被计算机执行。
2、 C 语言的源程序必须通过编译和连接后,才能被计算机执行。
3、C语言中的标示符可分为关键字、拥护标示符和预定义标识符3类。
4、C语言中的标示符可分为关键字、用户标识符和预定义标示符3类。
5、在C语言中,用关键字 float 定义单精度实型变量。
6、在C语言中,用关键字 double 定义双精度实型变量。
7、在C语言中,用关键字 char 定义字符型变量。
8、在C语言的赋值表达式中,赋值好左边必须是变量。
9、设C语言中的一个int型数据在内存中占2个字节,则int型数据的取值范围为-32768--32768 。
10、若有定义语句:int s=6;则表达式s%2+(s+1)%2的值为 1 。
11、若a是int型变量,且a的初值为6,则执行表达式a+=a-=a*a后a的值为-60 。
12、若a是int型变量,则执行表达式a=25/3%3后a的值为 2 。
13、在程序运行过程中,其值不能被改变的量称为常量。
14、C程序中定义的变量,代表内存中的一个存储单元。
15、C语言中,int类型数据字符占内存 2 个字节。
16、C语言中,char类型数据占内存 1 个字节。
17、C语言的字符常量是用单引号括起来的一个字符。
18、语句printf(“\n”);的作用是换行输出。
19、10/3的结果是3 。
20、10%3的结果是 1 。
21、C语句的最后用;结束。
22、要使用putchar函数,在#include命令行中应包含的头文件是#include。
23、要使用getchar函数,在#include命令行中应包含的头文件是#include。
24、为表示关系|x|≥9;应使用的C语言表达式是x<=-9 || x>=9 。
25、为表示关系|x|≤9;应使用的C语言表达式是x>=-9&&x<=9 。
C语言综合复习三一、选择题1、下列程序的输出结果是( B )。
main(){char c1=97,c2=98;printf(""%d %c"",c1,c2);}A、 97 98B、 97 bC、 a 98D、 a b2、下列语句的结果是( D )。
main(){ int j;j=3;printf(""%d,"",++j);printf(""%d"",j++);}A、 3,3B、 3,4C、 4,3D、 4,43、以下叙述中正确的是( C )A、用C语言实现的算法必须要有输入和输出操作B、用C语言实现的算法可以没有输出但必须要有输入C、用C程序实现的算法可以没有输入但必须要有输出D、用C程序实现的算法可以既没有输入也没有输出4、能正确表示“当x的取值在[1,100]和[200,300]范围内为真,否则为假”的表达式是( C)。
A、 (x>=1)&&(x<=100)&&(x>=200)&&(x<=300)B、 (x>=1)||(x<=100)||(x>=200)||(x<=300)C、 (x>=1)&&(x<=100)||(x>=200)&&(x<=300)D、 (x>=1)||(x<=100)&&(x>=200)||(x<=300)5、下面有关for循环的正确描述是( D )A、 for循环只能用于循环次数已经确定的情况B、 for循环是先执行循环体语句,后判定表达式C、在for循环中,不能用break语句跳出循环体D、 for循环体语句中,可以包含多条语句,但要用花括号括起来6、C语言源程序的基本单位是( B )。
1.C语言源文件的扩展名为.c_,C语言必须要有一个_主函数,而且只能有一个。
2.在C语言中,不能被调用的函数是main()_函数。
3.C语言程序总是从_主函数开始执行,并且终止于该函数。
4.若自定义函数要求返回一个值,则应在该函数体中有一条return_语句,若自定义函数要求不返回一个值,则应在该函数说明时加一个类型符_void。
5.printf()函数中的“\n”表示换行_作用。
6.C语言所提供的基本数据类型包括:单精度型、双精度型、整型_、字符型_。
7.C语言程序,关键字必须使用小写_字母。
8.若定义int a=8,则表达式a+=a-=a*=a的值是_0。
9._printf()函数的功能是按照指定的输出格式在显示器上显示指定的内容。
10.若有定义int5 w=5,x=2,y=3,z=4,则条件表达式w<x?w:(y<z?y:z)的值是_3。
11.运算符"+ "、“,”、"%"、"="中,优先级最高的是++_,优先级最低的是,_。
12.当m=3,n=4,a=5、b=1、c=2时,执行完d=(m=a!=b)&&(n=b>c)后,n的值为0_,m的值为_1,d的值为0_。
13.scanf函数和printf函数中的%d表示将待输出的数据按带符号的十进制_格式输出。
14.C语言提供的三种逻辑运算符是&&_、||_、_!。
15.在数组定义的格式中,方括号中的元素个数只能是整型常_量。
16.比较两个字符串是否相等的应用库函数strcmp()_.17.在C语言中,一个函数一般由函数首部_和函数体_两个部分组成。
18.函数中的形参和调用时的实参都是数组名时,传递方式为地址传递_;都是变量时,传递方式为_值传递.19.#define命令容许宏名带参数,称之为带参数_的宏20.在C语言中,预处理命令都以#_开头。
21.所谓的“指针”就是变量的存储地址_;%运算符的作用是_取余.1.C语言中语句的结束符是(;)2.下面不正确的C语言字符串常量时cA.“1234” B.‘DEF’ C.“7” D。
“”3.C源文件的扩展名为(c)4.下面4个选择中,不合法标识符的选项是(float)5.合法注释时(/*This is fantasy*/)6.以下描述中正确的是:(c)A)用C程序实现的算法必须要有输入和输出操作B)用C程序实现的算法可以没有输出但是必须有输入C)用C程序实现的算法可以没有输入但是必须有输出D)用C程序实现的苏凡可以既没有输出也没有输入7.以下关于运算符优先级顺序描述正确的是(c)赋值运算符逻辑运算符关系运算符、算数运算符、、8.判断char型变量ch是否为数字的正确表达式为:(c)A)’0’<=ch<=9B)(ch>=’0’)&(ch<=’9’)C)(ch>=’0’)&&(ch<=’9’)D)(‘0’<=ch)AND(9>=ch)9.C语言提供的逻辑非运算符分别是cA)||B)&&C)!D)&10.语言中函数体用(D)起来A) < >B) ( )C) [ ]D) { }11.下面有关for循环正确描述是DA)for循环只能用于循环次数已经确定的情况B)for最先执行循环体语句,后判断表达式C)在for循环中,不能用break语句跳出循环体D)for循环的循环语句中,可以包换多条语句,但必须用花括号括起来12.C语言程序的基本单位是D程序语句字符函数13.判断char型变量ch是否为小写字母的正确表达式为(ch>=’a’)&&(ch<=’z‘)14.以下定义不正确的是DA)#define A 234B)#define Pi 3.14259C)int func(int a,float b)D)static char ch;15.在C语言中,预处理命令都以(A )开头A)#B)*C)&D)/*16.同时定义b和d两个变量为浮点型数据时,中间用(A)分割。
A),B);C)。
D)、17.在宏定义#define PI 3.1415中,宏名PI替代的是一个(A)字符串单精度数双精度数常量18.以下不合法的C语言赋值语句为D++a;n=(n=(p=0));a=b==c;k=a+b=119.要使指针变量p指向一维数组a的第3个元素(下标为2的那个元素),正确的赋值表达式为:BP=&a或p=&a[2]P=a+2或p=&a[2]P=a+2或p=a[2]P=&a+2或p=a[2]20.以下不正确的说法为:D在不同函数中可以使用相同名字的变量形式参数是局部变量在函数内容定义的变量只在本函数范围内有效在函数内的复合语句中定义的变量在本函数范围内有效21.已知各变量的类型说明为:int S=10,k,a,b, double z=1.4,y=5.6 则以下符合C语言语法的表达式是:Ab+=a=(b=4)*(a=3)a=a*6=1z%(-6)y=double (S)程序填空1.下面程序的功能是输出所有的水仙花数,所谓水仙花数是指一个3位数,其各位数字立方和等于该数字本身,例如,153=13+53+33【此题有两种方法】#include<stdio.h>main(){int a,b,c,i;for (i=0;i<=999;i++){a=i%10;b=(i/10)%10;c=i/100;if(i==(a*a*a+b*b*b+c*c*c))printf(“%d\n”,i);}或者#include<stdio.h>main(){int a,b,c,str,i;for (i=0;i<=999;i++){a=i%10;b=(i/10)%10;c=i/100;sqr= a*a*a+b*b*b+c*c*c;if(sqr==i)printf(“%d\n”,i);}2.下面程序的功能是求下面分数序列的前10项之和:,,,,……填写完整程序,使得程序实现其功能。
#include <stdio.h>main(){float a,b,t,sum;int i;a=2,b=1,sum=0;for(i=1;i<=10;i++){t=a/b;sum+=t;a=a+b;b=a-b;}printf("sum=%f\n",sum);}3. 用近似公式计算e的值,要求误差小于10-5 e=1++++…+#include <stdio.h>main(){double e=1.0;int i=1,sum=1;while((1.0/sum)>1e-5){e=e+1.0/sum;i++;sum=sum*i;}printf(“i=%d,e=%f\n”,i,e);}4. 从键盘输入一个字符,判断该字符的类型,若该字符是数值,则直接输出;若该字符是字母,则输出该字母;若是其他字符,则输出“Other character”。
#include <stdio.h>main(){char ch;printf(“Input a character:”);ch=getchar();if(ch>=’0’&&ch<=’9’)printf(“%c\n”,ch);else if((ch>=’A’&&ch<=’Z’)||(ch>=’a’&&ch<=’z’))printf(“%c\n”,ch);else printf(“Other character\n”);}5. 从键盘输入3个整数放到一维数组a中,经过计算后输出第一个数组元素。
#include <stdio.h>main(){int a[3]={3*0};int i;for (i=0;i<3;i++)scanf(“%d”,&a[i]);for(i=1;i<3;i++) a[0]=a[0]+a[i];printf(“%d\n”,a[0]);}五读程序写结果1.#include <stdio.h>main(){int x[6]={1,2,4,6,8,10},*p;for(p=x;p<x+5;p++)printf(“%d\n”,*(++p));}答案:2,6,102.#include <stdio.h>main(){static char s[]={“ABCHJK”};char*p=s;*(p+2)+=3;printf(“%C,%C\n”,*p,*(p+2)); }答案:A,K3.#include <stdio.h>#define DouBLE(r) r*rmain(){int x=4,y=8·t;t=DouBLE(x-y);printf(“t=%d\n”,t);}答案:t=284.#include <stdio.h>#define MIN -40main(){int x=20,y=10;#if(MIN<x)printf(“%d\n”,x);#elseprintf(“%d\n”,y);#end if} 答案:205. #include <stdio.h>#define K(x,y) x=x+y,y=x-y,x=x-y main(){int a=10,b=67;K(a,b);printf(“a=%d,b=%d\n”,a,b);}答案:a=67,b=106.#include <stdio.h>main(){int a[]={1,2,3,4,5,6}*p;p=a;*(p+3)+=2;printf(“%d,%d\n”,*p,*(p+3));}答案:1,67. #include <stdio.h>void f(){static int a[3]=[2,4,6];int i;for(i=0;i<3;i++)a[1]+=a[i];for (i=0;i<3;i++)printf(“%d,”,a[i]); printf(“\n”)}main(){f();f();}答案:4,8,128,16,248.#include <stdio.h> void f(){int a=5;static int b=6;a--;b--;printf(“a%d,b=%d\n”,a,b); }main(){f()f()}答案:a=4,b=5a=4,b=49.#include <stdio.h>func(int a,int b)main(){static int m=1,i=2;i+=m+1;m=i+a+b;return(m)}main(){int k=3,m=1,p;p=func(k,m);printf(“%d\n”,p);p=func(k,m);printf(“p=%d\n”,p);}答案:8,1710.#include <stdio.h>#include <string.h>main(){char pw[]=”1 2 3 4 5 6”, char c[10]={“1 2 3 4 5”};if(strcmp(pw,c)==0)printf(“sorry!\n”);elseprintf(“welcome!\n’);}答案:sorry!11.#include <stdio.h>#include <string.h>main(){int i,j=0,a=3;for(i=0;i<3;i++)do{if(j%2)break;a+=2;j++;}while(j<10);printf(“a=%d,j=%d\n",a,j); }答案:a=5,j=112.#include<stdio.h>main(){char a[20]=”china”,b[20];int i=0printf(“a strring:%s\n”,a);dob[i]=(a[i]>=’a’&&a[i]<=’z’)?a[i] -32:a[i];while(a[i++]!=’\0’);printf(“b strring=%s\n”,b);}a string:Chinab string:CHINA设计一个子函数,求两个正整数的最大公约数,从主函数输入两个正整数并输出main(){int m,n;printf("Please input two numbles."); scanf("%d,%d\n",&m,&n);printf("The max is %d\n",f_Max(m,n)); }解int f_Max(int x,int y){int z;z=x%y;while(z!=0){x=y;y=z;z=x%y;}return y;}最小公倍数int f_min(int x,int y){int z,t;t=y;z=x%y;while(z!=0) {x=y;y=z;z=x%y;}return (x*t/y); }。