c语言练习题

合集下载

C语言练习题

C语言练习题

练习一1、把十进制数56,-74转化为对应的二进制数,并分别写出它们的8位原码和补码。

2、什么是浮点数?计算机内部是如何存储浮点数的?3、什么是ASCII码?ASCII码编码方案有何特点?试述常用字符的大致编码顺序。

4、什么是汉字的机内码?在计算机的内存中如何区分机内码与ASCII码?5、试述计算机内部采用二进制工作的原因,以及计算机的工作原理。

6、试述程序设计的概念,以及程序设计的基本过程。

7、什么是算法?算法有哪些特性和描述方法?算法与程序的关系如何?8、什么是高级语言?有哪些主要的高级语言?9、什么是标识符和关键字?它们分别有什么作用?10、标识符是如何构成的?使用标识符时应注意哪些问题?11、下列字符序列中,哪些可以构成合法的标识符?signed a-1 x_y_1 $use π0x56 sum num# _1234 age12、试述C程序的基本结构。

13、试述C程序上机的全过程,并解释这过程中产生的各类错误的含义。

练习二1、C语言的基本数据类型有哪些?数据类型对数据的表示和运算有什么约束?2、什么是常量?数值常量和符号常量有何区别?使用符号常量有什么好处?3、什么是变量?变量的名字、地址、值、类型有什么关系?4、如何定义变量?C语言中为什么规定变量必须先定义,后使用?5、常量也有数据类型,请问如何区分整型常量和实型常量的数据类型?6、字符常量与字符串常量的表示形式有何区别?'a'和"a"有什么不同?7、字符串常量"\\\34ab\n"中有多少个字符?8、下列表达式计算时,哪些地方会发生类型转换?从什么类型转换到什么类型?表达式计算的结果是什么类型?值多少?(1) 2.5+2*7%2/4 (2) 4*(2L+6.5)-12(3) 10/(5*3) (4) 2*10.0/(5*3)9、设有变量定义:float x=2.7,y=4.5; int a=8; 求表达式y+a%5*(int)(x+y)/2%4 的值。

c语言基础练习题及答案

c语言基础练习题及答案

c 语言基础练习题及答案一、单项选择题1. C语言源程序文件经过C编译程序编译连接之后生成一个后缀为_c_A 、”.c” B、“ .obj ” C、“ .exe” D 、“ .bas”2. 以下选项中不正确的整型常量是_c ______ 。

A、12L B 、-10 c、1,900 D、123U3. 表达式___c___ 的值是0。

A、3%5B、3/5.0 c、3/5 D、3<54. 表达式!(x>0||y>0) 等价于__D___ 。

A 、!x>0||!y>0B 、!(x>0)||!(y>0) c 、!x>0&&!y>0 D 、!(x>0)&&!(y>0)5. 若变量已正确定义并赋值,表达式__D ____ 不符合c 语言语法。

A、4&&3 B 、+a c、a=b=5 D 、int(3. 1 4)6. 若变量已正确定义,执行语句scanf(%d%d%d ,&k1,&k2,&k3) ;时,___BA 、2030,40 B、20 30 40 c、20, 30 40 D 、20, 30,407. 执行语句printf( ” __D ____ ” , 2); 将得到出错信息。

A、%dB、%o c、%x D 、%f8. 设变量定义为"int s[ ]=hello\nworld\n; ”则数组s中有—B __________ 个元素。

A、12B、13 c、14 D、159. 设变量定义为“ int a[2]={1,3}, *p=&a[0]+1; ” 则*p 的值是___B_。

A、2B、3 c、4 D、&a[0]+110. 若变量已正确定义并赋值,表达式-k++ 等价于__A________ 。

A、-(k++) B 、(-k)++ c、-(k+1) D、-(++k)11. 在c 语言程序中,在函数内部定义的变量称为__D ____ 。

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

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.-a1B.a[i]C.a2_iD.int t5~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 aBcB、I\am one_half start$it 3paiC、str_1 Cpp pow whileD、Pxq My->book line# His.age选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键字,不满足(3)9.C语言中的简单数据类型包括(D )。

《C语言》练习题及答案解析

《C语言》练习题及答案解析

《C语言》练习题及答案解析一.选择题1.下列字符序列中,不可用作C语言标识符的是(B)。

A.abc123 B.no.1 C._123_ D._ok2.一个C语言源程序是由(B)。

A.一个主程序和若干子程序组成B.一个或多个函数组成C.若干过程组成D.若干子程序组成3. 正确的C语言标识符是(A )。

A._buy_2 B.2_buy C.?_buy D.buy?4.已知字母A的ASCII码为十进制数65,且S为字符型,则执行语句S=’A’+’6’-’3’;后,S中的值为(A)。

A.’D’B.68 C.不确定的值D.’C’5.下列说法中,错误的是(A)。

A.每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号B.每个函数都有一个函数头和一个函数体,主函数也不例外C.主函数只能调用用户函数或系统函数,用户函数可以相互调用D.程序是由若干个函数组成的,但是必须有且仅有一个主函数6.有如下程序段,从键盘输入数据的正确形式应是(B)。

(注:└┘代表空格)float x,y,z;scanf(“x=%d,y=%d,z=%d”,&a,&y,&z);A.123 B.x=1,y=2,z=3C.1,2,3 D.x=1└┘ y=2└┘ z=37.在C语言中,char型数据在内存中的存储形式是(D)。

A.补码B.反码C.原码D.ASCII码8. 下列符号中,不属于转义字符的是(B )。

A.\\ B.\0xAA C.\t D.\09. 不属于C语言关键字的是(D)。

A.int B.break C.while D.character10. 以下说法中正确的是(C)。

A.C语言程序总是从第一个定义的函数开始执行B.在C语言程序中,要调用的函数必须在main( )函数中定义C.C语言程序总是从main( )函数开始执行D.C语言程序中的main( )函数必须放在程序的开始部分11. C语言程序的基本单位是(C)。

c语言练习题

c语言练习题
2-6:36个人搬36块砖,男人一人搬3块,女人一人搬1块,小孩2人搬一块,问男人,女人,小孩各多少人?
2-7:将一元钱分成一分,二分,五分币,共有多少种方法?
三、简单的判断问题
3-1:输入一个数n,判断该数是不是偶数,是偶数输出Y,不是偶数输出N
3-2:输入3-12之间的一个数,输出该月有几天。
四、累加问题与累乘问题
18.1乒乓球
这是一份乒乓球比赛的信息记录。
WWWLLLLWWLLWLWLLLLW
W代表你得一分,L代表对手得一分。
编写程序,由键盘输入比赛信息(WL字符串形式),输出当前的比分,你的分数在前,中间以冒号分隔。
例如,对于上面的信息记录,应当输出
8:11
18.2陶陶摘苹果
陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。例如:对于输入100 200 150 140 129 134 167 198 200 111 110,应当输出5
**
****
******
********
**********
1-6:编写程序,输出以下图形。
*
***
*****
*******
*********
1-7:编写程序,输出以下图形。
*
***
*****
*******
*********
1-8:编写程序,输出以下图形。(教材130页6.14)
*
***
*****

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

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

1、编程题1.输入2个整数,求两数的平方和并输出。

#include <stdio.h>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 <stdio.h>#define PI 3.14int 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);}elseprintf("Input error!\n");return 0;}3、已知函数y=f(x),编程实现输入一个x值,输出y值。

2x+1 (x<0)y= 0 (x=0)2x-1 (x>0)#include <stdio.h>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。

C语言练习题

C语言练习题

一、单项选择题一、基本概念1. C语言程序是由 C 构成的。

A)一些可执行语言 B)main函数 C)函数 D)包含文件中的第一个函数2.(A)是构成C语言程序的基本单位。

A、函数B、过程C、子程序D、子例程3.C语言程序从 C开始执行。

A) 程序中第一条可执行语句 B) 程序中第一个函数C) 程序中的main函数 D) 包含文件中的第一个函数4.C语言程序从main()函数开始执行,所以这个函数要写在_D___。

A) 程序文件的开始 B) 程序文件的最后C) 它所调用的函数的前面 D) 程序文件的任何位置5、以下说法中正确的是(C)。

A、C语言程序总是从第一个定义的函数开始执行B、在C语言程序中,要调用的函数必须在main( )函数中定义C、C语言程序总是从main( )函数开始执行D、C语言程序中的main( )函数必须放在程序的开始部分6. 下列方法中错误的是(D)。

A.主函数可以分为两个部分:主函数说明部分和主函数体。

B.主函数可以调用任何非主函数的其它函数。

C.任何非主函数可以调用其它任何非主函数。

D.程序可以从任何非主函数开始执行。

7.下列关于C语言的说法错误的是( B )。

A) C程序的工作过程是编辑、编译、连接、运行B) C语言不区分大小写。

C) C程序的三种基本结构是顺序、选择、循环D) C程序从main函数开始执行8. 系统默认的C语言源程序扩展名为.C,需经过 C 之后,生成.exe文件,才能运行。A) 编辑、编译 B )编辑、连接 C) 编译、连接 D) 编辑、改错二、数据类型、运算符与表达式1. 不是C语言提供的合法关键字是(B)。

A.switchB.cherC.caseD.default4.下列正确的标识符是(C)。

A.-a1B.a[i]C.a2_iD.int t5. 下列C语言用户标识符中合法的是( B )。

A、*yB、sumC、intD、%5f6. 下面四个选项中,合法的标识符是:(D)A. autoB. defineC. 6aD. c7.下列C语言用户标识符中合法的是( B)。

C语言200道练习试题和答案

C语言200道练习试题和答案

A)<=
B)=
C)%
D)&&
26.表达式(a=2,3) , a+1的值是【 C 】。
A)0 B)2
C)3
D)4
27.若执行printf("%d\n", strlen("a\n\"\x41"))语句其输 出结果是【 D 】。
A)8 B)7 C)6
D)4
28.在循环语句的循环体中执行break语句, 其作用是【 A 】。 A)跳出该循环体,提前结束循环 B)继续执行break语句之后的循环体各语句 C)结束本次循环,进行下次循环 D)终止程序运行
则输出是【 d 】 A)1234.56 1234 B)1234.57 1235 C)1234.56 1235 D)1234.57 1234
43.如果有
int a, b; scanf(“%d,%d”, &a, &b);语句,
则输入数据时,只可以用【 d 】作为输入的分隔符
A)TAB键 B)空格
C)回车
C)20,10 D)20,20
24.若有以下定义和语句 char c1='b',c2='e'; printf("%d,%c\n",c2-c1,c2-'a'+"A"); 则输出结果是【 B 】。
A)2,M B)3,E C)2,E D)输出项与对应的格式控制不一致,输出结果不确定
25.在以下一组运算符中,优先级最高的运算符是【 C 】
int i,j,k; scanf(“%d,%3d%d”,&i,&j,&k); printf(“%d,%d,%d\n”,i,j,k); A)12345678 B)123,456,78 C)123,45678 D)123,*45678
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

int a[n]; 3、 在C 语言中,引用数组元素时,其数组下标的数据类型允许就是 (C )。

A 、 整型常量B 、 整型表达式C 、 整型常量或整型表达式D 、 任何类型的表达式4、 以下对一维数组m 进行正确初始化的就是(C )。

A 、 int m[10]=(0,0,0,0) ; B 、 int m[10]={ }; C 、 int m[ ]={0}; D 、 int m[10]={10*2};5、 若有定义:int bb[ 8];。

则以下表达式中不能代表数组元bb[1]的地址的就是(c)。

A 、 &bb[0]+1B 、 &bb[1]C 、 &bb[0]++D 、 bb+16、 假定int 类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x 在内存中所占字 节数就是(B )。

A 、 3 B6C10D207、 若有以下说明:int a[12]={1,2,3,4,5,6,7,8,9,10,11,12}; char c='a',d,g;则数值为4的表达式就是(D )A 、a[g-c]B 、a[4]C 、a['d'-'c']D 、a['d'-c]8、 以下程序段给数组所有的元素输入数据 ,请选择正确答案填入(A )。

#include<stdio 、h> main() {int a[10],i=0;while(i<10) scanf("%d",); }A 、 a+(i++)B 、&a[i+1]C 、 a+iD 、 &a[++i]9、 执行卜面的程序段后 int k=3, s[2]; s[0]=k;k=s[1]*10; ,变量k 中的值为(A)。

A 、 不定值 B33 C 、 30D 、 1010、以下程序的输出结果就是 (C )4.1 1、 A 、B 、C 、D2、 A 、C 、选择题 以下关于数组的描述正确的就是 数组的大小就是固定的 数组的大小就是可变的 数组的大小就是固定的 数组的大小就是可变的 以下对一维整型数组 int a(10); int n; scanf("%d”,&n); (c )。

,但可以有不同的类型的数组元素 ,但所有数组元素的类型必须相同,所有数组元素的类型必须相同 ,可以有不同的类型的数组元素 a 的正确说明就是 B D 、 (D)。

int n=10,a[n]; #define SIZE 10 int a[SIZE];main()(int i, a[10];for(i=9;i>=0;i--) a[i]=10-i; printf("%d%d%d”,a[2],a[5],a[8]); }A、258B、741 G 85211、以下程序运行后输出结果就是(D)。

main()(int n[5]={0,0,0},i,k=2;for(i=0;i<k;i++) n[i]=n[i]+1;printf("%d\n”,n[k]);}A、不确定的值B、2C、 112、以下程序运行后输出结果就是(B )。

main(){int y=18,i=0,j,a[8];do{ a[i]=y%2; i++;y=y/2;} while(y>=1);for(j=i-1;j>=0;j--) printf("%d",a[j]);printf("\n");}A、10000B、10010 G 0011013、以下程序运行后输出结果就是(A )。

main(){int a[10], a1[ ]={1,3,6,9,10}, a2[ ]={2,4,7,8,15},i=0,j=0,k;for(k=0;k<4;k++)if(a1[i]<a2[j]) a[k]=a1[i++];else a[k]=a2[j++];for(k=0;k<4;k++) printf("%d”,a[k]);}A、1234B、1324C、241314、以下程序运行后输出结果就是(B )。

main(){int i,k,a[10],p[3];k=5;for (i=0;i<10;i++)for (i=0;i<3;i++)for (i=0;i<3;i++)D、369D、0D、10100D、4321a[i]=i;p[i]=a[i*(i+1)]; k+=p[i]*2;printf("%d\n”,k); } A 、 20B 、 21G 2215、以下程序运行后输出结果就是(D)。

main() {int n[3],i,j,k; for(i=0;i<3;i++) n[i]=0; k=2;for (i=0;i<k;i++) for (j=0;j<k;j++) n[j]=n[i]+1;printf("%d\n”,n[1]); } A 、 2B 、 1G 010个整数存入数组 a,再输入一个整数x,在数组a x 。

找到则输出x 在10个整数中的序号(从1开始);找不到则输出0。

程序缺少的就是 main() { int i,a[10],x,flag=0; for(i=0;i<10;i++) scanf("%d”,&a[i]); scanf("%d”,&x);for(i=0;i<10;i++) if {flag=i+1; break;} printf("%d\n", flag); }A 、 x!=a[i]B 、 !(x-a[i])C 、 x-a[i]D>!x-a[i]17、 若说明:int a[2][3]; 则对a 数组元素的正确引用就是(C )。

A 、 a(1,2)B 、 a[1,3]C 、 a[1>2][!1]D 、 a[2][0]18、 若有定义:int b[3][4]={0};则下述正确的就是(D)。

A 、 此定义语句不正确 B 、 没有元素可得初值 0 C 、 数组b 中各元素均为0D 、 数组b 中各元素可得初值但值不一定为19、 若有以下数组定义,其中不正确的就是(D)。

A 、int a[2][3]; B int b[][3]={0,1,2,3};C 、 int c[100][100]={0};D 、 intd[3][]={{1,2},{1,2,3},{1,2,3,4}};20、 若有以下的定义:int t[5][4];能正确引用t 数组的表达式就是(C )。

A 、t[2][4]B 、t[5][0]G t[0][0]D 、t[0,0]21、 在定义 int m[ ][3]={1,2,3,4,5,6};后,m[1][0]的值就是(C> A 、 4 B 、 1C 、 2D 、 522、 在定义intn[5][6]后第10个元素就是(C )D 、 23D 、 316、下列程序的主要功能就是输入 中查找 (B)。

A 、n[2][5]B 、n[2][4]C 、 23、若二维数组c 有m 列,则计算任一元素 (假设c[0][0]位于数组的第一个位置) A 、 i*m+jB 、 j*m+iC 、 i *m+j-1D 、 i*m+j+124、 若有以下定义语句,则表达式“ x[1][1]*x[2][2] ”的值就是(B)。

float x[3][3]={{1、0,2、0,3、0},{4、0,5、0,6、0}}; A 、 0、0 B 、 4、0G 5、0D 、 6、025、 以下程序运行后,输出结果就是(A )。

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 、543026、 以下程序运行后,输出结果就是(B)。

main() {int aa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}}; int i,s=0;for(i=0;i<4;i++) s+=aa[i][1]; printf( "r% d ,s);} A 、 11819C 、 1327、 有以下程序 main( ) {int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0; for(i=1;i<3;i++) for(j=0;j<=i;j++) s+=a[i][j];printf("%d\n”,s); }该程序的输出结果就是(A)。

A 、 18819C 、 2028、 若定义如下变量与数组:则下面语句的输出结果就是 (C >int i;int x[3][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++) printf("%d",x[i][2-i]); A 、 1 5 9B 、 1 4 7C 、 3 5 7D 、 3 6 929、 下述对C 语言字符数组的描述中错误的就是 (C)。

A 、 字符数组可以存放字符串B 、 字符数组中的字符串可以整体输入、输出C 、 可以在赋值语句中通过赋值运算符"="对字符数组整体赋值D 、不可以用关系运算符对字符数组中的字符串进行比较 30、下述对C 语言字符数组的描述中正确的就是(C )。

n[1][3]D 、n[1][4]c[i][j]在数组中的位置的公式为(A)。

D 、 输出值不定D 、 20D 、 21A、任何一维数组的名称都就是该数组存储单元的开始地址,且其每个元素按照顺序连续占存储空间B、一维数组的元素在引用时其下标大小没有限制C、任何一个一维数组的元素,可以根据内存的情况按照其先后顺序以连续或非连续的方式占用存储空间D、一维数组的第一个元素就是其下标为1的元素31、不能把字符串:Hello!赋给数组b的语句就是(B )。

A、char str[10]= {'H', 'e', T, T, 'o', '! '};B、char str[10];str="Hello!";C、char str[10];strcpy(str,"Hello!”);D、char str[10]="Hello!";32、合法的数组定义就是(D)。

相关文档
最新文档