C语言习题
c语言习题(带答案)

一、选择1若有表达式(a)(--x):(++y),则其中与a等价的表达式是A)a==1B)a==0C)a!=1D)a!=02有以下程序段intx,y,z;x=10;y=50;z=30;if(x>y)x=y,y=z;z=x;printf(“x=%dy=%dz=%d\n”,x,y,z);程序的输出结果是A)x=10y=50z=10B)x=10y=50z=30C)x=10y=30z=10D)x=50y=30z=503下面的函数调用语句中func函数的实参个数是f(f2(u1,u2),(u3,u4),(u6,max(u7,u8)));A)3B)4C)5D)84 以下叙述中错误的是A)用户定义的函数中可以没有return语句B)用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值C)用户定义的函数中若没有return语句,则应当定义函数为void类型D)函数的return语句中可以没有表达6有以下程序#include<>voidfun(inta,intb){intt;t=a;a=b;b=t;}main(){intc[10]={11,12,13,14,15,16,17,18,19,20},i;for(i=0;i<10;i+=2)fun(c[i],c[i+1]);for(i=0;i<10;i++)printf("%d,",c[i]);printf("\n");}程序的运行结果是A)11,12,13,14,15,16,17,18,19,20B)12,11,14,13,16,15,18,17,20,19C)20,19,18,17,16,15,14,13,12,11D)20,11,12,13,14,15,16,17,18,198有以下程序main(){ int a=7,b=8,*p,*q,*r;p=&a;q=&b;r=p; p=q;q=r;printf("%d,%d,%d,%d\n",*p,"q,a,b);}程序运行后的输出结果是A)8,7,8,7 B)7,8,7,8 C)8,7,7,8 D)7,8,8,79 .s1和s2已正确定义并分别指向两个字符串。
C语言习题

C语言习题(一) 一、判断题()1、开发C语言程序通常要经过编辑、预处理、编译、连接、装入和执行6个阶段。
()2、C语言程序由一个或多个函数组成,其中有且只有一个main函数。
()3、C语言中,所有标识符必须由一个字母 ( a ~ z , A ~ Z ) 或下划线 ( _ )开头。
()4、同一程序的各函数中定义的局部变量不可以同名。
()5、C语言中,主函数main中定义的变量称为全局变量,在整个文件中有效。
()6、C语言中,函数重载常用于设计多个进行类似任务而处理不同数据类型的同名函数。
()7、C语言中,数组名的值就是数组中第一个元素的值。
()8、在C++中,指针的作用是用来表示一个变量指向另一个变量这样的指向关系。
()9、C语言中,定义结构时,结构体中的成员名不能与程序中的其它变量重名。
()10、C语言中,声明一个结构并不分配内存,只有在定义结构变量时,才分配内存。
二、填空题1、在C语言中,定义double类型数组arr, 数组大小为20, 应写为()。
222、写出公式S=a+b+2ab的C语言赋值语句:()。
3、定义a为长度为10的字符串、并为字符串赋初值\的语句为()。
4、设ch是字符变量,则判断ch是小写英文字母的逻辑表达式为()。
5、函数的返回值也叫函数值,函数值是通过函数中的()语句获得的。
6、链表是一种非常有用的动态数据结构,只有一个指针链的链表称为()。
7、对数组a[]进行初始化的数据为{2,4,6,8,10,12,14},则a[3]被初始化为()。
8、对于 int *p, i = 5, j = 6; 执行 p = &i; p = &j; 后(*p)的值为()。
9、执行完下列语句段后, i的值为:()。
int a[3][4]={{1,2,3},{4,5,6}}, i; i= a[1][2];10、有语句struct point{int x;int y;}; point pExample; 则将pExample的成员x初始化为8的语句是()。
《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语言习题集及答案

计算机系统概述一、简答题1.什么是计算机系统?包括哪几部分?答:计算机系统是一种动态实体,用于解决问题以及与它所处的环境进行交互;计算机系统包括硬件、软件和它们管理的数据。
3.简述计算机软件各个时代的主要特征。
答:第一代机器语言编写,第二代高级语言编写,第三代出现操作系统,第四代出现结构程序设计,第五代出现面向对象的程序设计语言。
4.计算机是如何分类的?答:按工作原理和运算方式分为数字电子计算机(Digital Computer)、模拟电子计算机(Analog Computer)和数字模拟混合计算机(Hybrid Computer);按设计目的分为通用计算机和专用计算机;按用途科学计算、工程计算机用的计算机、工业控制用的计算机和数据处理用的计算机;按规模和性能分为巨型机、大型机、小型机、微型机、工作站、服务器、网络计算机和嵌入式计算机等。
5.计算机具有哪些特点?答:运算速度快、精度高;具有逻辑判断功能;具有记忆功能;自动化程度高、通用性强。
6.衡量计算机性能的指标有哪些?答:从几个方面衡量,衡量cpu的指标有字长、时钟周期和主频,衡量内存的指标有内存容量、存取周期,衡量外设的指标有输入输出最高频率。
7.简述计算机主要应用在哪些方面。
答:科学计算、信息传输和信息处理、实时控制、辅助功能(设计/制造/教学)、艺术和娱乐。
8.简述计算机系统抽象分层,及每一层的功能。
答:主要分为七层,信息表示层反映了在计算机上表示信息的方式,它是一个纯概念层;硬件层探讨计算机系统的物理硬件组成;程序设计层负责解决人们的一些问题、用于实现计算的指令以及管理数据;操作系统层用来管理计算机的各种资源,提供人与计算机交互的接口;网络通信层是计算机系统运行的基础,计算机连接到网络上共享信息和资源;应用软件层的重点则是将计算机与一个实际应用领域相结合。
计算机中的信息表示一. 判断题1.二进制数在计算中很重要,因为二进制数可以被转换成以任何数为基数的数。
C语言习题集(含答案)

一、单选题:(1)在C语言提供的合法的关键字是( )A)swicth B) cher C)Case D)default(2)在C语言中,合法的字符常量是()A)’\084’ B) ’\x43’C)’ab’D) "\0”(3)若有定义和语句:char s[10]: s="abcd”;printf(”%s\n",s);则结果是(以下u代表空格)()A)输出abcd B)输出aC)输出abcduuuuu D)编译不通过(4) 若有定义和语句:int **pp, *p,a=10, b=20;pp=&p;p=&a; p=&b; printf("%d,%d\n",*p,**pp);则输出结果是:()A)10,20 B)10,10 C)20,10 D)20,20(5)若有以下定义和语句:int u=010,v=0x10,w=10;printf("%d,%d,%d\n”,u, v, w);则输出结果是()A) 8,16,10B)10,10,10 C)8,8,10 D) 8,10,10 (6) 若有以下定义和语句char c1=' b', c2='e’;printf(”%d,%c\n", c2-c1,c2—'a’+”A");则输出结果是( )A)2,M B)3,EC)2,E ?D)输出项与对应的格式控制不一致,输出结果不确定(7)若有以下定义:char s[20]=”programming”,*ps=s;则不能代表字符o的表达式是( )A)ps+2 B) s[2]C) ps[2]D) ps+=2,*ps(8)若i,j已定义为int类型,则以下程序段中内循环体的总的执行次数是() for (i=5; i; i—-)for(j=0;j<4; j++){。
}A) 20B) 25 C)24 D) 30(9)若有以下定义和语句:char *s1=”12345",*s2="1234";printf("%d\n",strlen(strcpy(s1,s2)));则输出结果是()A)4B)5 C)9 D)10(10)若有以下定义和语句:int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则不能表示a数组元素的表达式是()A) *p B) a[10]C)*a D)a[p-a](11)下面程序的输出是()main(){char *s=”121";int k=0,a=0,b=0;do{k++;if(k%2==0) {a=a+s[k]—’0’;continue;}b=b+s[k]—’0';a=a+s[k]—'0';}while (s[k+1]);printf("k=%d a=%d b=%d\n",k,a,b);A) k=3 a=2 b=3 B) k=3 a=3 b=2C)k=2 a=3 b=2D) k=2 a=2 b=3(12) 下面程序的输出是( )main(){ unsigned a=32768;printf("a=%d\n”,a);}运行结果: —32768A)a=—32768 B)a=32767C)a=-32767 D)a=—1(13) 若有以下定义:float x; int a,b; 则正确的switch 语句是( )A)switch(x) B) switch(x){case1.0:printf("*\n”);{case1, 2:printf(”*\n”);case2。
c语言程序基础练习题500道附答案

c语言程序基础练习题500道(附答案)1.下列四组选项中,均不是C语言关健字的选项是( A )。
A) define B) gect C) include D)whileIF char scanf gotype printf case pow2.下面四个选项中,均是合法整型常量的选项是( A )。
A)160 B)-0xcdf C) -01 D)-0x48a-0xffff 01a 986,0122e5011 0xe 0668 0x3.下面四个选项中,均是不合法的转义符的选项是( B )。
A) '\"' B) '\1011' C) '\011' D) '\abc''\\' '\' '\f''\101''xf' '\A' '\}' 'x1f'4.下面不正确的字符串常量是( A )。
A)'abc' B)"12'12" C)"0"D)" "5.以下选项中不合法的用户标识符是( A )。
A)abc.c B)file C)MainD)PRINT6.C语言提供的合法关键字是( D )。
A) swithB) cherC) CaseD)default7.下列标识符组中,合法的用户标识符为 AA)_0123与ssipedB)del-word与signedC)list与*jerD) keep%与wind8.在C语言中,逻辑值"真"的表示是用( C )。
A) true B) 整型值0 C)非另整型值D) T9若有以下定义char s='\092';则该语句( b )A)使s的值包含一个字符 B)定义不合法,s的值不确定C)使s的值包含4个字符 D)使s的值包含3个字符10设C语言中,int类型数据占2个字节,则float类型数据占( D )个字节。
C语言练习题(带详解答案)

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.-a1B.a[i]C.a2_iD.intt5~8题为相同类型题考点:标识符的命名规则(1)只能由字母、数字、下划线构成(2)数字不能作为标识符的开头(3)关键字不能作为标识符选项A中的-,选项B中[与]不满足(1);选项D中的int为关键字,不满足(3)6.下列C语言用户标识符中合法的是(B)。
A)3a某B)某C)caeD)-e2E)union选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的-不满足(1);7.下列四组选项中,正确的C语言标识符是(C)。
A)%某B)a+bC)a123D)123选项A中的%,选项B中+不满足(1);选项D中的标识符以数字开头不满足(2)8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。
A、print_3ddb8aBcB、I\\amone_halftart$it3paiC、tr_1CpppowwhileD、P某qMy->bookline#Hi.age选项B中的\\,$,选项D中>,#,.,-不满足(1);选项C中的while为关键字,不满足(3)9.C语言中的简单数据类型包括(D)。
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。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
练习题 2015-2016(2)重修)判断1. C 语言源程序文件通过了编译、连接之后 , 生成一个后缀为 .BAK 的文件。
( )2.在 C 程序中, APH 和 aph 代表不同的变量。
( )3.C语言中数据类型只有整型、实型和字符型。
( )4.int i=20;switch(i/10){case 2:printf("A");case 1:printf("B");}的输出结果为A。
()5.Break语句用在循环体中,可结束本层循环,continue语句用在循环体中,可结束本次循环。
()6.函数strlen("ASDFG\n")的值是7。
()7.结构体类型只有一种。
()8.构成数组的各个元素可以有不同的数据类型。
( )9.C语言中字符串的结束符是'\0'。
( )10.数组名代表数组的首地址。
( )11.函数的递归调用不过是一个函数直接或间接地调用它自身。
()12.通过return语句,函数可以带回一个或一个以上的返回值。
()13.Char *p="girl";的含义是定义字符型指针变量p,p的值是字符串"girl"。
()14.若有定义:char *p(char a[10]);则p是函数名。
()15.用fopen("file","r+");打开的文件"file"可以进行修改。
()C概述,数据类型,运算符,表达式,选择结构1.以下叙述中正确的是()。
A.程序设计的任务就是编写程序代码并上机调试B.程序设计的任务就是确定所用数据结构C.程序设计的任务就是确定所用算法D.以上三种说法都不完整2. C语言源程序的基本单位是()。
A.过程B.函数C.子程序D.标识符3. C语言规定,在一个源程序中main函数的位置()。
A.必须在最开始B.必须在最后C.必须在预处理命令的后面D.可以在其他函数之前或之后4.以下叙述中正确的是()。
A.C语言系统以函数为单位编译源程序B.main函数必须放在程序开始C.用户定义的函数可以被一个或多个函数调用任意多次D.在一个函数体内可以定义另外一个函数5. C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符()A.必须为字母B.必须为下划线C.必须为字母或下划线D.可以是字母,数字和下划线中任一种字符6.下面四个选项中,均是合法转义字符的选项是()A.'\'' '\\' '\n'B.'\' '\017' '\"'C.'\018' '\f' 'xab'D.'\\0' '\101' 'xlf'7.下面四个选项中,均是不合法的用户标识符的选项是()A.A P_0 doB.float la0 _AC.b-a goto intD._123 temp INT8.已知有声明 char c='1';int x=300;float t=35000;double d=3.1234567e10; ,则以下表达式求值时除( )外其结果都可能是不准确的。
A.x=t/cB.t=d/xC.t=d/le5fD.t=x+c9.已知有声明"int n;float x,y;",则执行语句"y=n=x=3.89;"后,y的值为()。
A.3B.3.0C.3.89D.4.010.已知有声明"int a=3,b=4,c=5;",以下表达式中值为0的是()。
A.a&&bB.a<=bC.a||b&&cD.!(!c||1)11.有)12.执行了以下程序段后,x、w的值为()。
int x=0,y=1,z=2,w;if(x++) w=x;else if(x++&y>=1) w=y;else if(x++&&z>1) w=z;A.0、1B.1、1C.2、1D.3、213.寺14.已知有声明"long x,y;"且x中整数的十进制表示有n位数字(4<n<10),若要求去掉整数x十进制表示中的最高位,用剩下的数字组成一个新的整数并保存到y中,则以下表达式中能正确实现这一功能的是()。
A.y=x/(10*(n-1))B.y=x%(10*(n-1))C.y=x%(long)pow(10,n-1)D.y=x%(10^(n-1))15.下列程序的输出结果是()。
main( ){ int a=7,b=5;printf("%d\n",b=b/a);}A.5B.1C.0D.不确定值16.假设变量a,b均为整型,表达式(a=5,b=2,a>b?a++:b++,a+b)的值是()。
A.7B.8C.9D.217.设a为int型变量,执行下列赋值语句后,a的取值分别是()。
a=125.534; a=(int)125.521%4; a=5<<2;A.125,31,1B.125,1,20C.125,31,20D.125.534,2,2018.若有以下程序段int r=8;printf("%d\n",r>>1);输出结果是()。
A.16B.8C.4D.219.若有声明:int k,a,b;unsigned long y=5; Double x=1.23;则以下表达式中正确的是()。
A.x%(-5)B.x=y[6]C.k=(a=l,b=2,&a+&b)D.a+=a-=(b=2)*(a=3)20.若num、a、b和c都是int型变量,则执行表达式num=(a=4,b=16,c=32)后num的值为()A.4B.16C.32D.5221.已知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<回车>22.已知ch是字符型变量,则不正确的赋值语句是()A.ch=5+9;B.ch='\0';C.ch='7'+'9';D.ch='a+b';23.判断char型变量c1是否为大写字母的正确表达式是()A.'A'<=c1<='Z'B.(c1>='A')&(c1<='Z')C.(c1>='A')&&(c1<='Z')D.('A'<=c1) AND ('Z'>=c1)24.若希望当num的值为奇数时,表达式的值为“真”,num的值为偶数时,表达式的值为“假”。
则以下不能满足要求的表达式是()A.num%2==1B.!(num%2==0)C.!(num%2)D.num%225.若有定义: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.00000026.设变量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.027.以下正确的if语句是()A.if(n>0) printf("%f",n)printf("%f",-n);B.if(n>0){ n=n+m;printf("%f",n);}else printf("%f",-n);C.if(n>0){ n=n+m;printf("%f",n);};else printf("%f",-n);D.if(n>0){ n=n+m;printf("%f",n) };else printf("%f",-n);28.以下程序运行的结果是()#include<stdio.h>int main(){int x1=3,x2=0,x3=0;if(x1=x2+x3)printf("****");else printf("####");}A.输出:****B.输出:####C.存在语法错误D.无输出结果29.语句while(!y)中的表达式 !y 等价于()A.y==0B.y!=1C.y!=0D.y==130.若有定义语句:int x=10;,则表达式 x-=x+x 的值为()。
A.-20B.-10C.0D.1031.以下程序段中,与语句:k=a>b?(b>c ? 1 : 0) : 0;功能相同的是()。
A.if((a>b) && (b>c)) k=l;else k=0;B.if((a>b)||(b>c))k=l;else k=0;C.if(a<=b)k=0;else if(b<=c)k=1;D.if(a>b) k=l;else if(b>c)k=1;else k=0;32.已知某程序如下:float p=1.5;#define p 2.5main(){printf("%f",p);}则main函数中标识符p代表的操作数是()。
A.float型变量B.double型变量C.float型常量D.double型常量33.逻辑"异或"运算可描述为"a xor b",其中a和b为参加运算的两个操作数,运算结果为当且仅当a、b两个操作数中只有一个为真时才为真,其他情况下均为假。