C++题目含答案
- 格式:doc
- 大小:120.50 KB
- 文档页数:25
c语言编程面试题目及答案C语言是一种广泛应用于计算机编程领域的编程语言,掌握好C语言编程知识对于求职和面试来说至关重要。
本文将提供一些常见的C语言编程面试题目及其相应的答案,以帮助读者更好地准备面试。
1. 请解释一下C语言的优点和缺点。
答:C语言的优点包括高效性、可移植性、功能丰富、灵活性强、易于学习和使用等。
同时,由于它是一种较底层的语言,可以更好地控制硬件和内存,适用于开发系统软件和嵌入式系统。
然而,C语言也存在一些缺点,比如相对较低的抽象层级、易于出错、不支持面向对象等。
此外,由于C语言没有内置的异常处理机制,错误处理需要手动处理。
2. 请解释什么是指针,并描述它的作用。
答:指针是C语言中一种特殊的数据类型,用于存储变量的内存地址。
通过指针,可以直接访问和修改指向内存位置的值,这对于实现动态内存分配、传递大量数据和操作复杂数据结构非常有用。
3. 请解释C语言中的数组和指针之间的关系。
答:数组和指针在C语言中有着密切的关系。
实际上,数组名可以被看作是一个指向数组第一个元素的指针。
通过指针算术运算,可以访问数组中的每个元素。
此外,数组参数在函数调用时会被自动转换为指针。
4. 请解释什么是函数指针,并说明它的用途。
答:函数指针是指向函数的指针变量。
通过函数指针,可以动态地选择调用不同的函数,实现代码的灵活性和重用性。
函数指针常用于回调函数、实现多态等场景。
5. 请解释C语言中的动态内存分配,并说明如何使用相关函数。
答:动态内存分配是指在程序运行时根据需要动态申请和释放内存。
C语言提供了动态内存分配相关的函数malloc、calloc和realloc,它们分别用于申请内存、申请带初始化的内存和重新分配内存。
使用这些函数时需要注意及时释放已申请的内存,以免造成内存泄漏。
6. 请解释C语言中的结构体,并举例说明其用法。
答:结构体是一种自定义的复合数据类型,可以包含多个不同类型的成员变量。
通过结构体,可以将相关数据组织在一起,方便进行管理和操作。
试卷总分:100分共有题型:6种一、填空共15题(共计15分)第1题(1.0分)若有以下数组a,数组元素:a[0]~a[9],其值为 9 4 12 8 2 10 7 5 1 3该数组中下标最大的元素的值是【1】.答案:3第2题(1.0分)表达式18 && 53 的值是【1】.答案:1第3题(1.0分)c语言程序的三种基本结构是:顺序结构,选择结构,【1】结构.答案:循环第4题(1.0分)预处理命令行都必须以【1】号开始.答案:#第5题(1.0分)设i,j,k均为int型变量,则执行完for循环for(i=0,j=10;i<=j;i++,j--) k=i+j;后,k的值为【1】.答案:10第6题(1.0分)程序段int k=10; while(k=0) k=k-1循环体语句执行【1】次.答案:0第7题(1.0分)执行下列语句后,*(p+1)的值是【1】.char s[3]="ab",*p;p=s;答案:b第8题(1.0分)若输入字符串:abcde<回车>,则以下while循环体将执行【1】次.While((ch=getchar())=='e') printf("*"); 答案:0第9题(1.0分)如果函数不要求带回值,可用【1】来定义函数返回值为空.答案:void第10题(1.0分)C语言中,数组元素的下标下限为【1】.答案:0 第11题(1.0分)int a=1,b=2,c=3; 执行语句a=b=c;后a的值是【1】.答案:3第12题(1.0分)若有以下数组a,数组元素:a[0]~a[9],其值为 9 4 12 8 2 10 7 5 1 3该数组可用的最小下标值是【1】.答案:0第13题(1.0分)将数组a的首地址赋给指针变量p的语句是【1】.答案:p=a;第14题(1.0分)以下程序的输出结果为【1】,#include "stdio.h" main(){inta=010,j=10;printf("%d,%d\n",++a,j--);} 答案:9,10第15题(1.0分)假设有条件 int x=1,y=2,z=3;则表达式z+=x>y?++x:++y的值是【1】.答案:6二、判断共15题(共计15分)第1题(1.0分)do-while循环是先判断循环条件表达式,后执行循环体;while循环是先执行循环体,后判断循环条件表达式.答案:N第2题(1.0分)关系运算符的优先级高于算术运算符并且低于赋值运算符.答案:N第3题(1.0分)C程序中的关键字必须小写.答案:Y第4题(1.0分)若有说明int c;则while(c=getchar());是正确的C语句.答案:Y第5题(1.0分)数组中的元素类型不能不同答案:Y第6题(1.0分)a=(b=4)+(c=6) 是一个合法的赋值表达式.答案:Y第7题(1.0分)int a[3][4]={{1},{5},{9}}; 它的作用是将数组各行第一列的元素赋初值,其余元素值为0.答案:Y第8题(1.0分)若 a=3,b=2,c=1 则关系表达式"(a>b)==c" 的值为"真".答案:Y第9题(1.0分)int i,*p=&i;是正确的C说明语句.答案:Y第10题(1.0分)语句"int *pi,pj"定义了两个指针变量答案:N第11题(1.0分)如果函数值的类型和return 语句中表达式的值不一致,则以函数类型为准.答案:Y第12题(1.0分)C语言中的for语句可以用于循环次数已经确定的情况,但是不能用于循环次数不确定而只给出循环结束条件的情况.答案:N第13题(1.0分)在执行switch语句时,default和各个case的出现次序不影响执行结果.答案:Y第14题(1.0分)语句 printf("%f%%",1.0/3);输出为0.333333.答案:N第15题(1.0分)若i =3,则printf("%d",-i++);输出的值为-4.答案:N三、单项选择共17题(共计34分)第1题(2.0分)下列程序段的输出结果为().float x=213.82631;printf("%3d",(int)x);A:213.82 B:213.83 C:213 D:3.8 答案:C第2题(2.0分)下列定义不正确的是(). A:#define PI 3.141592 B:#define S345 C:int max(x,y); int x,y; { }D:static char c; 答案:C第3题(2.0分)以下程序段的输出结果为().char c[]="abc";int i=0;dowhile(c[i++]!='\0');printf("%d",i-1); A:abc B:ab C:2 D:3 答案:D第4题(2.0分)若ch为char型变量,k为int型变量(已知字符a的ASCII十进制代码为97),则以下程序段的执行结果是().ch='a'; k=12; printf("%x,%o,",ch,ch); printf("k=%%%d\n",k); A:因变量类型与格式描述符的类型不匹配,输出无定值B:输出项与格式描述符个数不符,输出为零值或不定值C:61,141,k=%12 D:61,141,k=%d 答案:C第5题(2.0分)对 for(表达式1; ;表达式3) 可理解为().A:for(表达式1;0;表达式3) B:for(表达式1;1;表达式3)C:for(表达式1;表达式1;表达式3)D:for(表达式1;表达式3;表达式3) 答案:B第6题(2.0分)以下程序段的输出结果为().for(i=4;i>1;i--)for(j=1;j<i;j++)putchar('#');A:无 B:###### C:# D:### 答案:B 第7题(2.0分)下列语句的结果是(). main(){ int j;j=3;printf("%d,",++j);printf("%d",j++);}A:3,3 B:3,4 C:4,3 D:4,4 答案:D 第8题(2.0分)设a=12,且a定义为整型变量.执行语句a+=a-=a*=a;后a的值为().A:12 B:144 C:0 D:132 答案:C第9题(2.0分)执行语句 for(i=1;i++<4;); 后变量 i 的值是().A:3 B:4 C:5 D:不定答案:C第10题(2.0分)若有char a[80],*s=a;正确的输入语句是().A:scanf("%s",s); B:gets(*s);C:scanf("%c",s); D:getchar(s,80); 答案:A第11题(2.0分)以下函数调用语句中实参的个数是().func((e1,e2),(e3,e4,e5));A:2 B:3 C:5 D:语法错误答案:A第12题(2.0分)下列运算符中优先级最高的是().A:< B:+ C:&& D:!=答案:B第13题(2.0分)int a[10];给数组a的所有元素分别赋值为1、2、3、……的语句是().A:for(i=1;i<11;i++)a[i]=i;B:for(i=1;i<11;i++)a[i-1]=i;C:for(i=1;i<11;i++)a[i+1]=i;D:for(i=1;i<11;i++)a[0]=1; 答案:B第14题(2.0分)若k为int型变量,则以下程序段的执行结果是().k=-8567; printf("k=|%06D|\n");A:格式描述符不合法,输出无定值 B:输出为k=|%06D| C:输出为|0-8567| D:输出为|-8567|答案:B第15题(2.0分)在C语言中,要求运算数必须是整型的运算符是().A:^ B:% C:! D:> 答案:B第16题(2.0分)下列运算符中是C语言关系运算符的是().A:~ B:! C:& D:!= 答案:D第17题(2.0分)若有说明:inta[][3]={1,2,3,4,5,6,7,8,9};则a数组第一维的大小是().A:2 B:3 C:4 D:无确定值答案:B四、程序填空共2题(共计12分)第1题(6.0分)/*-------------------------------------------------------【程序填空】---------------------------------------------------------题目:以下程序的功能如(图1)。
最大公约数题目:两个数能同时被一个数所整除,这个数就是公约数。
例如,12和20的公约数有1,2,4。
其中4是12和20的最大公约数。
输入要求:输入两个正整数,用逗号分隔。
输出要求:输出这两个数的最大公约数。
输入示例:24,60输出示例:12提示:可以用辗转相除法计算最大公约数;也可以用穷举法求最大公约数。
计算数列和题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13,…… 计算这个数列的前n项和。
输入要求:输入一个正整数n。
(n≥1)输出要求:输出数列的前n项和(保留两位小数)。
输入示例:10输出示例:s=16.48提示:C语言中整数/整数的结果为整数;注意用(float)强制转换为实型后进行计算。
水仙花数题目:一个3位正整数的各位数字立方和等于它自身,那么它是水仙花数。
例如:153=13+53+33,153是水仙花数。
编写程序找出所有的水仙花数。
输入要求:无输出要求:100~999之间的所有水仙花数。
输入示例:输出示例:153370371407提示:#include<stdio.h>int main(){int a,b,c;for(a=1;a<=9;a++){for(b=0;b<=9;b++)for(c=0;c<=9;c++)if(a*100+b*10+c*1==a*a*a+b*b*b+c*c*c)printf("%d\n",a*100+b*10+c*1);}return(0);}计算阶乘和题目:计算1!+2!+3!+ (10)输入要求:无输入。
输出要求:1!+2!+3!+……+10!的计算结果输入示例:输出示例:s=4037913提示:#include<stdio.h>int main(){int j;int sum=1;int temp=0;for(j=1;j<=10;j++){sum*=j;temp+=sum;}printf("s=%d",temp);return(0);}完数题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”。
C笔试题目及答案c语言笔试题目及答案c笔试题目及答案:c语言笔试题目及答案c笔试题目汇总篇11.谋下面函数的返回值(谷歌)intfunc(x){intcountx=0;while(x){countx++;x=x&(x-1);}returncountx;}假定x=。
答案:8思路:将x转变为2十进制,看看所含的1的个数。
2.什么是“引用”?申明和使用“引用”要注意哪些问题?请问:提及就是某个目标变量的“别称”(alias),对应用领域的操作方式与对变量轻易操作方式效果完全相同。
言明一个提及的时候,切勿必须对其展开初始化。
提及声明完后,相等于目标局部变量存有两个名称,即为该目标原名称和提及名,无法再把该提及名做为其他局部变量的别称。
声明一个提及,不是崭新定义了一个变量,它只则表示该提及名就是目标局部变量的一个别称,它本身不是一种数据类型,因此提及本身不占到存储单元,系统也不给提及分配存储单元。
无法创建数组的提及。
3.将“引用”作为函数参数有哪些特点?(1)传达提及给函数与传达指针的效果就是一样的。
这时,被调函数的形参就沦为原来主调函数中的实参变量或对象的一个别称去采用,所以在被调函数中对形参变量的操作方式就是对其适当的目标对象(在主调函数中)的操作方式。
(2)使用引用传递函数的参数,在内存中并没有产生实参的副本,它是直接对实参操作;而使用一般变量传递函数的参数,当发生函数调用时,需要给形参分配存储单元,形参变量是实参变量的副本;如果传递的是对象,还将调用拷贝构造函数。
因此,当参数传递的数据较大时,用引用比用一般变量传递参数的效率和所占空间都好。
(3)采用指针做为函数的参数虽然也能够达至与采用提及的效果,但是,在被调函数中同样必须给形参分配存储单元,且须要重复使用"*指针局部变量"的形式展开运算,这很难产生错误且程序的写作性极差;另一方面,在主调函数的调用点处,必须用变量的地址做为实参。
C语言程序设计期末考试试题及其答案一、单项选择题(本大题共20题,每题2 分,共40分)1、以下不是C语言的特点的是( )A、C语言简洁、紧凑B、能够编制出功能复杂的程序C、C语言可以直接对硬件进行操作D、C语言移植性好2、以下不正确的C语言标识符是( )A、ABCB、abcC、a_bcD、ab.c3、一个C语言程序是由( )A、一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是( )A、有零个或多个输入B、有零个或多个输出C、有穷性D、可行性5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为( )A、intB、floatC、doubleD、不确定6、在C语言中,char型数据在内存中的存储形式是( )A、补码B、反码C、源码D、ASCII码7、有如下程序,输入数据:12345M678<cR>后(<CR>表示回车),x的值是( ) 。
#include<stdio.h>main(){int x;float y;scanf("%3d%f",&x,&y);}A、12345B、123C、45D、3458、若有以下定义int a,b; float x,则正确的赋值语句是( )A、a=1,b=2B、b++;C、a=b=5D、b=int(x);9、以下程序的执行结果是( )#include<stdio.h>{int i=10,j=10;printf("%d,%d\n",++i,j--);}A、11,10B、9,10C、11,9D、10,910、巳知字母A的ASCII码是65,以下程序的执行结果是( )#include<stdio.h>main(){char c1='A',c2='Y';printf("%d,%d\n",c1,c2);A、A,YB、65,65C、65,90D、65,8911、下列运算符中优先级最高的是( )A、<B、十C、%D、!=12、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0是( ) 。
国家二级C语言(选择结构、循环结构)机试模拟试卷1(总分66, 做题时间90分钟)1. 选择题1.下列选项中,当x为大于1的奇数时,值为0的表达式是( )。
SSS_SINGLE_SELA x%2==0B x/2C x%2!=0D x%2==1分值: 2答案:A解析:算术运算符的优先级高于关系运算符的优先级,所以当x为大于1的奇数时,A选项的值为假,即0。
B选项的值为不定值,但绝对不是O。
C选项的值为真,即1。
D选项的值为真,即1。
2.若a是数值类型,则逻辑表达式(a==1)‖(a!=1)的值是( )。
SSS_SINGLE_SELA 1B 0C 2D 不知道a的值,不能确定分值: 2答案:A解析:逻辑或“‖”要求只要两边的运算对象有一个非零,结果就为真。
虽然不知道a的值,但是若a为l,则左边运算对象为1;若a的值不是l,则右边运算对象的值为1,所以总能保证一边非零。
3.当变量e的值不为2、4、6时,值为“真”的表达式是( )。
SSS_SINGLE_SELA (c>=2&&e<=6)&&(c%2 1=1)B (c==2)‖(c==4)‖(c==6)C (c>=2&&c<=6)&&!(c%2)D (c>=2&&c←6)‖(c!=3)lI(c!=5)分值: 2答案:D解析:逻辑或运算符中只要有一个运算量为真,结果就是真,当c>=2&&c<=6条件不成立时,c的值肯定不是2、3、4、5、6,所以c!:3与c!:5均成立,所以D选项的结果一定为真。
4.有以下程序: #include main() { int a=1,b=2,c=3,d=0;if(a==1&&b++==2) if(b!=2‖c一!=3) prinff(“%d,%d,%d\n”,a,b,c);else prinff(“%d,%d,%d\n”,a,b,c);else prinff(“%d,%d,%d\n”,a,b,c); } 程序的运行结果是( )。
桂林电子科技大学非计算专业学生计算机水平考试(C语言)A卷答案第一卷出卷人:大学生创新创业综合实践基地软件部策划:大学生创新创业综合实践基地软件部科技发展部1、( )是构成C语言程序的基本单位。
A、函数B、过程C、子程序D、子例程正确答案:A概念题目需要记下!2、以下说法中正确的是( )。
A、C语言程序总是从第一个定义的函数开始执行B、在C语言程序中,要调用的函数必须在main( )函数中定义C、C语言程序总是从main( )函数开始执行D、C语言程序中的main( )函数必须放在程序的开始部分正确答案:C[解析]C程序是由函数构成的。
一个C源程序至少包含一个MAIN函数,也可以包含一个MAIN函数和若干个其他函数,因此,函数是C程序的基本单位。
3、下列四组字符串中都可以用作C语言程序中的标识符的是( )。
A、print _3d db8 aBcB、I\am one_half start$it 3paiC、str_1 Cpp pow whileD、Pxq My->book line# His.age正确答案:A4、C语言中的简单数据类型包括( )。
A、整型、实型、逻辑型B、整型、实型、逻辑型、字符型C、整型、字符型、逻辑型D、整型、实型、字符型正确答案:D5、C语言中,关系表达式和逻辑表达式的值是( ) 。
A、0B、0或1C、1D、'T'或'F'正确答案:B6、下面( )表达式的值为4.A、 11/3B、 11.0/3C、 (float)11/3D、 (int)(11.0/3+0.5)正确答案:D解析:选项A,11与3为两个整数,11/3结果的数据类型也应为整数,因此将3.666666的小数部分全部舍掉,仅保留整数,因此11/3=3。
选项B,11.0为实数,3为整数,因此首先要统一数据类型,将整型数据3转换为3.0,转换后数据类型统一为实型数据,选项B变为11.0/3.0,结果的数据类型也应为实型数据,因此选项B 11.0/3=3.666666。
C语言程序设计期末考试试题(含答案)(推荐完整)编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望(C语言程序设计期末考试试题(含答案)(推荐完整))的内容能够给您的工作和学习带来便利。
同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。
本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为C语言程序设计期末考试试题(含答案)(推荐完整)的全部内容。
C语言程序设计期末考试试题(含答案)(推荐完整)编辑整理:张嬗雒老师尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布到文库,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是我们任然希望 C语言程序设计期末考试试题(含答案)(推荐完整)这篇文档能够给您的工作和学习带来便利。
同时我们也真诚的希望收到您的建议和反馈到下面的留言区,这将是我们进步的源泉,前进的动力。
本文可编辑可修改,如果觉得对您有帮助请下载收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为〈C语言程序设计期末考试试题(含答案)(推荐完整)> 这篇文档的全部内容。
C语言程序设计期末考试试题及其答案一、单项选择题(本大题共20题,每题2 分,共40分)1、以下不是C语言的特点的是 ( )A、 C语言简洁、紧凑B、能够编制出功能复杂的程序C、 C语言可以直接对硬件进行操作D、 C语言移植性好2、以下不正确的C语言标识符是()A、 ABCB、 abcC、 a_bcD、 ab.c3、一个C语言程序是由()A、一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成4、一个算法应该具有“确定性"等5个特性,对另外4个特性的描述中错误的是( )A、有零个或多个输入B、有零个或多个输出C、有穷性D、可行性5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为 ( )A、 intB、 floatC、 doubleD、不确定6、在C语言中,char型数据在内存中的存储形式是()A、补码B、反码C、源码D、ASCII码7、有如下程序,输入数据:12345M678<cR>后(〈CR〉表示回车),x的值是 ( )。
C语言试题一:单项选择题1.void Example(char acHello[]){printf("%d", sizeof(acHello));return;}void main(){char acHello[] = "hello";Example(acHello);return;}的输出是( )A 4B 5C 6 D不确定2.网络上传输的字节序默认是大字节的,如果主机是小字节序,在网络通信时则须进行字节序转换;如果主机是大字节序,为了程序的一致性及可移植性,最好也在程序中加上字节序转换的操作(空操作)。
( )A. 正确B.错误3. int *(*ptr)();则以下叙述中正确的是( )A) ptr是指向一维组数的指针变量B) ptr是指向int型数据的指针变量C) ptr是指向函数的指针,该函数返回一个int型数据D) ptr是指向函数的指针,该函数的返回值是指向int型数据的指针4.此函数实现把32位IP地址(网络序)以字符串的方式打印出来:char *IpAddr2Str(unsigned long ulIpAddr){char szIpAddr[32];unsigned long ulLocIpAddr = ntohl(ulIpAddr);d.%d.%d", ulLocIpAddr >> 24,(ulLocIpAddr >> 16) & 0xff, (ulLocIpAddr >> 8) & 0xff, ulLocIpAddr & 0xff);return szIpAddr;}下面描述正确的是():A、数组szIpAddr空间不够;B、函数返回局部数组szIpAddr变量地址;C、输出的IP地址次序颠倒;5.#define OK 0#define ERR 1#define ERROR (-1)#define BUFFER_SIZE 256char *GetMemory(unsigned long ulSize){char *pcBuf = NULL;pcBuf = (char *)malloc(ulSize);if(NULL == pcBuf){return ERROR;}return pcBuf;}void Test(void){char *pszBuf = NULL;pszBuf = GetMemory(BUFFER_SIZE);if(NULL != pszBuf){strcpy(pszBuf, "Hello World!\r\n"); printf(pszBuf);free(pszBuf);}return;}如下描述正确的是:A、pszBuf指向的内存不能超过255B、GetMemory函数的异常分支返回了-1,是一个非法地址C、GetMemory中异常分支没有释放空间;D、pcBuf为局部指针,指向的内存将在GetMemory被调用后释放6、#include ""unsigned short *Sum(unsigned char a, unsigned char b){unsigned short s = 0;s = a + b;return &s;}int main(){unsigned short *p = NULL;unsigned char a = 1, b = 2;p = Sum(a, b);printf("%u+%u", a, b);printf("=%u\n", *p);return 0;}程序执行结果是()+2=0 +2=3 +2=NULL D.不可预测7、设有如下定义:BOOL gStatusA = FALSE;BOOL gStatusB = TRUE;int gVarA = 100;int gVarB = 100;则执行main函数后gVarA和gVarB的值分别为( )BOOL CheckA(){if(gStatusA){gVarA++;}else{gVarA--;return gStatusA;}BOOL CheckB(){if(gStatusB){gVarB++;}else{gVarB--;}return gStatusB;}int main(int argc, char* argv[]) {if(CheckA() && CheckB() ){printf(“Status OK”);}return 0;}A, 99和100 B, 99和101 C 99和99 D 101和998.下面的代码中,函数Test执行完毕后,希望输出无符号长整型的1。
c语言编程题及答案1. 输入输出题题目:编写一个程序,要求从键盘输入两个整数,然后输出它们的和。
答案:```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:\n");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("它们的和为:%d\n", sum);return 0;}```2. 条件语句题题目:编写一个程序,要求从键盘输入一个整数,判断它是否为正数、负数还是零,并输出相应的提示信息。
答案:```c#include <stdio.h>int main() {int num;printf("请输入一个整数:\n"); scanf("%d", &num);if (num > 0) {printf("这是一个正数。
\n"); } else if (num < 0) {printf("这是一个负数。
\n"); } else {printf("这是零。
\n");}return 0;}```3. 循环语句题题目:编写一个程序,要求计算并输出1到100之间所有偶数的和。
答案:```c#include <stdio.h>int main() {int i, sum;sum = 0;for (i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}printf("1到100之间所有偶数的和为:%d\n", sum);return 0;}```4. 数组题题目:编写一个程序,要求定义一个包含10个整数的数组,并逐个从键盘输入数组元素的值,然后对数组进行逆序输出。
c语言考试题及答案大一C语言考试题及答案大一一、单项选择题(每题2分,共20分)1. C语言中,以下哪个选项是正确的标识符?A. 2variableB. variable2C. variable-2D. variable$2答案:B2. C语言中,以下哪个选项是正确的整型常量?A. 0x1AB. 1.2e3C. 0.12e3D. 1.2e答案:A3. C语言中,以下哪个选项是正确的字符串常量?A. 'Hello'B. "Hello"C. "Hello"D. "Hello"答案:B4. C语言中,以下哪个选项是正确的浮点型常量?A. 3.14B. 3.14e2C. 3.14eD. 3.14E答案:B5. C语言中,以下哪个选项是正确的字符常量?A. 'a'B. "a"C. 'a' 'b'D. 'ab'答案:A6. C语言中,以下哪个选项是正确的数组声明?A. int a[5] = {1, 2, 3, 4, 5};B. int a[] = {1, 2, 3, 4, 5};C. int a[5] = {1, 2, 3};D. int a = {1, 2, 3, 4, 5};答案:A7. C语言中,以下哪个选项是正确的函数声明?A. int add(int x, int y);C. int add(int, int);D. int add(int x, y);答案:A8. C语言中,以下哪个选项是正确的结构体声明?A. struct Point { int x, y; };B. struct { int x, y; } Point;C. struct Point { int x; int y; };D. struct { int x; int y; };答案:C9. C语言中,以下哪个选项是正确的指针声明?A. int p;B. int p[];C. int (p)[];答案:A10. C语言中,以下哪个选项是正确的枚举声明?A. enum Color { Red, Green, Blue };B. enum { Red, Green, Blue };C. enum Color { 1, 2, 3 };D. enum { Red = 1, Green, Blue };答案:A二、填空题(每题3分,共15分)1. 在C语言中,`printf`函数用于__输出__数据到标准输出设备。
一、选择题1. 以下非法的赋值语句是A: n=(i=2,++i);B: j++;C: ++(i+1);D: x=j>0;2. 已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1 && y+z/2 的值是A: 6B: 0C: 2D: 13. 阅读以下程序: main() { int x; scanf(“%d”,&x); if(x--<5) printf(“%d”,x); else printf(“%d”,x++); } 程序运行后,如果从键盘上输人5,则输出结果是()。
A: 3B: 4C: 5D: 64. 有如下程序main0{ int a=2,b=-1,c=2;if(a<b)if(b<0) c=0;else c++printf("%d\n",c);}该程序的输出结果是A: 0B: 1C: 2D: 35. 有以下程序#include <stdio.h>main(){ int a,b,c=246;a=c/100%9;b=(-1)&&(-1);printf("%d,%d\n",a,b);}输出结果是( )。
A: 2,1B: 3,2C: 4,3D: 2,-16.两次运行下面的程序,如果从键盘上分别输入6 和4,则输出结果是main( ){ int x;scanf("%d",&x);if(x + + >5) printf("%d",x);else printf("%d\n",x - -); }A: 7 和5B: 6 和3C: 7 和4D: 6 和47. 能表示x 为偶数的表达式是A: x%2==0B: x%2==1C: x%2D: x%2!=08. 下面的程序段中共出现了几处语法错误?int a,b;scanf("%d",a);b=2a;if(b>0) printf("%b",b);A: 1B: 2C: 3D: 49. C 语言中,逻辑“真”等价于A: 大于零的数B: 大于零的整数C: 非零的数D: 非零的整数10. C 语言的switch 语句中,case 后A: 只能为常量B: 只能为常量或常量表达式C: 可为常量及表达式或有确定值的变量及表达式D: 可为任何量或表达式11. 已知int i=10;表达式"20-0<=i<=9"的值是A: 0B: 1C: 19D: 2012. 设有int i, j, k; 则表达式i=1,j=2,k=3, i&&j&&k 的值为A: 1B: 2C: 3D: 013. 逻辑运算符两侧运算对象的数据类型A: 只能是0 或1B: 只能是0 或非0 正数C: 只能是整型或字符型数据D: 可以是任何类型的数据14. 能正确表示“当x 的取值在[1,10]和[200,210]范围内为真,否则为假”的表达式是()A: (x>=1)&&(x<=10)&&(x>=200)&&(x<=210)B: (x>=1)||(x<=10)||(x>=200)||(x<=210)C: (x>=1)&&(x<=10)||(x>=200)&&(x<=210)D: (x>=1)||(x<=10)&&(x>=200)||(x<=210)15. 已知x=43,ch=’a’,y=0;则表达式(x>=y&&ch<’b’&&!y)的值是()A: 0B: 1C: 语法错误D: 假16. 执行下列语句后a 的值为int a=5,b=6,w=1,x=2,y=3,z=4;(a=w>x)&&(b=y>z);A: 5B: 0C: 2D: 117. 以下程序的输出结果是()main(){ int a=5,b=0,c=0;if(a=b+c) printf(“***\n”);else printf(“$$$\n”);}A: 有语法错误不能通过编译B: 可以通过编译但不能通过连接C: ***D: $$$18. 以下程序的输出结果是()main(){ int m=5;if(m++>5) printf(“%d\n”,m);else printf(“%d\n”,m--);}A: 4B: 5C: 6D: 719. 若运行时给变量x 输入12,则以下程序的运行结果是()main(){ int x,y;scanf(“%d”,&x);y=x>12?x+10:x-12;printf(“%d\n”,y);}A: 0B: 22C: 12D: 1020. 若w=1,x=2,y=3,z=4,则表达式w<x?w:y<z?y:z 的值是A: 4B: 3C: 2D: 121. 设有int a=2,b;则执行b=a&&1;语句后,b 的结果是A: 0B: 1C: 2D: 322. 设有int m=1,n=2;则++m==n 的结果是A: 0B: 1C: 2D: 323. 设有int n=2;则++n+1==4 的结果是A: true B: false C: 1D: 024. 设有int n=2;则++n+1==4,n 的结果是A: 1B: 2C: 3D: 425. 以下使i 的运算结果为4 的表达式是A: int i=0,j=0; (i=3,(j++)+i);B: int i=1,j=0; j=i=((i=3)*2);C: int i=0,j=1; (j==1)?(i=1):(i=3);D: int i=1,j=1; i+=j+=2;26. 当a=5,b=2 时,表达式a= =b 的值为A: 2B: 1C: 0D: 527. 若执行以下程序时从键盘上输入9,_______则输出结果是main(){ int n;scanf("%d",&n);if(n++<10) printf("%d\n",n);else printf("%d\n",n--);}A: 11B: 10C: 9D: 828. main(){ int a,b,d=241;a=d/100%9;b=(-1)&&(-1);printf(“%d,%d”,a,b);}A: 6,1B: 2,1C: 6,0D: 2,029. 若有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=2030. 下列表达式中能表示a 在0 到100 之间的是A: a>0&a<100B: !(a<0||a>100)C: 0<a<100D: !(a>0&&a<100)31. 为了避免嵌套的if—else 语句的二义性,C 语言规定else 总是与()组成配对关系。
计算机二级c考试题目及答案解析一、选择题1. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A解析:在C语言中,`struct`关键字用于定义一个结构体,它允许将多个不同类型的数据组合成一个单一的数据结构。
2. 下列哪个函数用于计算并返回字符串的长度?A. strlen()B. strcpy()C. strcat()D. strcmp()答案:A解析:`strlen()`函数用于计算字符串的实际长度,即字符串中字符的数量,不包括结尾的空字符'\0'。
3. C语言中,以下哪个运算符用于逻辑“与”操作?A. &&B. ||C. &D. |答案:A解析:`&&`是C语言中的逻辑“与”运算符,当且仅当两个操作数都为真(非0)时,结果才为真。
二、填空题1. 在C语言中,若要声明一个整型变量并初始化为10,正确的语句是。
答案:int a = 10;解析:在C语言中,声明并初始化一个整型变量可以使用`int`关键字后跟变量名和赋值表达式。
2. 若有以下代码段:```cint x = 5;x += 3;```执行后,变量x的值是。
答案:8解析:`x += 3;`是复合赋值运算符,等同于`x = x + 3;`,因此执行后x的值变为5+3=8。
三、编程题1. 编写一个C语言函数,计算并返回两个整数的和。
```cint add(int a, int b) {return a + b;}```解析:该函数接受两个整型参数a和b,并返回它们的和。
这是一个简单的算术运算函数。
2. 请写出一个C语言程序,实现输入一个字符串,然后输出其反转后的字符串。
```c#include <stdio.h>#include <string.h>void reverse(char str[]) {int len = strlen(str);for (int i = len - 1; i >= 0; i--) {printf("%c", str[i]);}}int main() {char str[100];printf("Enter a string: ");scanf("%s", str);reverse(str);return 0;}```解析:该程序首先包含必要的头文件,定义了一个`reverse`函数,该函数接受一个字符数组作为参数,并使用循环从后向前打印每个字符,实现字符串的反转。
fgetc函数的作用是从指定文件读入一个字符,该文件的打开方式必须是()。
A、读或读写B、追加C、只写D、答案B和C都正确【参考答案】错误A【学生答案】D使用共用体变量,不可以()。
A、同时访问所有成员B、进行动态管理C、节省存储空间D、简化程序设计【参考答案】正确A【学生答案】A设有如下定义: struct sk {int a; float b;} data,*p;若要使p指向data中的a域,正确的赋值语句是()。
A、p=(struct sk*) ;B、*p=;C、p=&;D、p=&data,a;【参考答案】错误C【学生答案】B以下程序段执行后输出的结果是( ).char str[ ]="ABCD",*p=str;printf("%d\n",*(p+4));A、字符'D'的地址B、0C、不确定的值D、68【参考答案】错误B【学生答案】D已定义char a[10];和char *p=a;,下面的赋值语句中正确的是( ).A、p="Turbo c";B、a="Turbo c";C、*p="Turbo c";D、a[10]="Turbo c";【参考答案】错误A【学生答案】C设有如下程序,请选择正确答案( )。
#include <>main(){int **k,*j,i=100;j=&i, k=&j;printf("%d\n",**k);}A、运行错误B、100C、i的地址D、j的地址【参考答案】正确B【学生答案】B以下叙述正确的是()。
A、可以把if定义为用户标识符,但不能把define定义为用户标识符B、define和if都不能定义为用户标识符C、可以把define定义为用户标识符,但不能把if定义为用户标识符D、可以把define和if定义为用户标识符【参考答案】正确C【学生答案】C关于建立函数的目的,以下正确的说法是()。
二级C语言-7-2(总分73.5, 做题时间90分钟)一、选择题1.设a和b均为int型变量,且a=6、b=11、c=3,则能使值为3的表达式是。
• A. b%(c%4)• B. b%(c-a%5)• C. b%a-a%5• D. (b%a)-(a%4)SSS_SIMPLE_SINA B C D分值: 1答案:D[解析] 选项D)括号内的运算分别是b%a=11%6=5和a%c=6%4=2,最后得到5-2=3。
2.算法的时间复杂度是指• A. 执行算法程序所需要的时间• B. 算法程序的长度• C. 算法执行过程中所需要的基本运算次数• D. 算法程序中的指令条数SSS_SIMPLE_SINA B C D分值: 1答案:C[解析] 算法的复杂度主要包括算法的时间复杂度和算法的空间复杂度。
所谓算法的时间复杂度是指执行算法所需要的计算工作量,即算法执行过程中所需要的基本运算的次数;算法的空间复杂度一般是指执行这个算法所需要的内存空间。
3.以下程序的运行结果为#include"stdio.h"main(){ int m,n;for(m=0,n=10;m<n;m+=3,n--);printf("%d,%d\n",m,n);}• A. 6,7• B. 7,6• C. 9,7• D. 7,9SSS_SIMPLE_SINA B C D分值: 1答案:C[解析] for后一对括号中的表达式可以是任意有效的C语言表达式。
该题目的循环体部分为空语句,循环控制条件为m<n,每一次m增3,n减1,每当循环体执行结束时,循环控制变量m,n就会分别被增3和减1。
4.负责数据库中查询操作的数据库语言是______。
• A.数据定义语言• B.数据管理语言• C.数据操纵语言• D.数据控制语言SSS_SIMPLE_SINA B C D分值: 1答案:C[解析] 数据定义语言:负责数据的模式定义与数据的物理存取构建;数据操纵语言:负责数据的操纵,包括查询及增、删、改等操作;数据控制语言:负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等功能。
c语言程序设计编程题库及详解答案C语言是一种通用的编程语言,广泛用于系统软件、应用程序和嵌入式系统开发。
C语言以其高效性和灵活性而著称,是许多编程语言的基础。
下面,我将提供一些C语言程序设计编程题库的题目及其详解答案。
题目一:计算圆的面积问题描述:编写一个C程序,输入圆的半径,计算并输出圆的面积。
代码实现:```c#include <stdio.h>#define PI 3.14159int main() {double radius, area;printf("请输入圆的半径:");scanf("%lf", &radius);area = PI * radius * radius;printf("圆的面积是:%.2f\n", area);return 0;}```题目二:求最大公约数问题描述:编写一个C程序,输入两个整数,计算并输出这两个整数的最大公约数。
代码实现:```c#include <stdio.h>int gcd(int a, int b) {while (b != 0) {int temp = b;b = a % b;a = temp;}return a;}int main() {int num1, num2;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);printf("最大公约数是:%d\n", gcd(num1, num2));return 0;}```题目三:字符串反转问题描述:编写一个C程序,输入一个字符串,然后输出该字符串的反转。
代码实现:```c#include <stdio.h>#include <string.h>void reverseString(char str[]) {int length = strlen(str);for (int i = 0; i < length / 2; i++) {char temp = str[i];str[i] = str[length - i - 1];str[length - i - 1] = temp;}}int main() {char str[100];printf("请输入一个字符串:");fgets(str, 100, stdin); // 使用fgets以包含空格str[strcspn(str, "\n")] = 0; // 去除换行符reverseString(str);printf("反转后的字符串是:%s\n", str);return 0;}```题目四:计算阶乘问题描述:编写一个C程序,输入一个非负整数,计算并输出该整数的阶乘。
C++ 复习资料 南昌大学计算中心 海天工作室 `C++复习资料 一、 选择题 1、若X是一个bool型变量,则X&&5<3的值( B ) A、为true B、为false C、与X的值相同 D、与X的值相反 2、设a=6,执行语句 a+=4; 得到a的值为( D ) A、6 B、12 C、18 D、10 3、字符串”student”占用( D )个字节的空间。 A、7 B、6 C、5 D、8 4、二维数组int b[][4]={{1,2},{1,2,3},{1,2,3,4}}的元素个数为( A ) A、12 B、3 C、4 D、7 5、下列哪个不是用于实现循环结构的语句( B ) A、while B、if C、do while D、for 6、下列表达式为真的是( B ) A、5<3 B、2*3>=6 C、(7= =9)&&(4>0) D、(10!=2+8)||(5<3) 7、设x=5,执行语句if(x<0) cout< A、5 B、x C、无输出 D、0 8、执行语句k=30;j=k++;后k和j的值分别为( C ) A、k=30,j=30 B、k=30,j=31 C、k=31,j=30 D、k=31,j=31 9、表达式7%3+5*9-10/2的结果为( D ) A、42 B、43 C、40 D、41 10、执行cout<<520< A、520endl”520” B、520endl520 C、520 D、 520 “520” 520 11、下列数据属于字符型的是: ( C ) A、123 B、true C、’c’ D、10.5 12、该for循环语句:for(i=1;i<11;i++) sum+=i; 中循环体的执行次数为 ( C ) A、8 B、9 C、10 D、11 13、对程序段: if(x>y) z=1; else z=3; 要得到z=3的结果,满足条件的一组数是( D ) A、x=﹣1,y=﹣2 B、x=1,y=0 C、x=2,y=1 D、x=2,y=3 14.下面是关于构造函数的说法,不正确的是( A )。 A. C++规定,每一个类必须有一个构造函数,没有构造函数就不能创建对象 B. 如果没有提供一个类的构造函数(一个都未提供),则C++提供一个默认的构造函数,该默认构造函数是个无参构造函数,它仅仅负责创建对象 C. 虽然一个类定义了一个构造函数(不一定是无参构造函数),C++仍然提供默认的构造函数 D. 与变量定义类似,在用默认构造函数创建对象时,如果创建的是全局对象或静态对象,则对象的位模式全为0,否则,对象值是随机的 15.在下列说法中,不正确的是( B )。 A. 静态成员函数不能利用this指针 C++ 复习资料 南昌大学计算中心 海天工作室 B. 只有非静态成员才可以使用this关键字,因为静态成员没有this指针 C.析构函数不接受任何参数,也不带有任何类型的返回值 D. 虚机制在构造函数和析构函数中仍然可以很好地工作,以实现多态性 16.声明类test的拷贝构造函数的正确形式是( D )。 A. int test B. void test C. test(void) D. test(test&) 17.一个const对象( B )。 A. 能访问所有成员函数 B. 只能访问const成员函数 C. 也能访问volatile成员函数 D. 能访问const和volatile成员函数 18.下面关于类的对象性质的描述,正确的是( D )。 A. 对象之间不可以相互赋值 B. 不可以说明指向对象的指针 C. 对象不能用作数组元素 D. 一个对象能用作另一个对象的成员 19、C++源程序文件的扩展名为( A ) A、.CPP B、.C C、.DLL D、.EXE 20、下面的函数声明中, 哪一个是” void BC(int a, int b);”的重载函数? ( C ) A、int BC(int a, int b) B、 void BC(int a, char b) C、float BC(int a, int b, int c = 0) D、 void BC(int a, int b=0) ?21 .如果a=1,b=2,c=3,d=4,则条件表达式“a>b?a:c
A. 3 B. 2 C. 1 D. 4 22. 在int a[][3]={{1},{3,2},{4,5,6},{0}}中,a[2][2]的值是( C ) A.3 B。 2 C。6 D。4 ?23. 已知 char c; char * const pc="asdf",( B )是正确的。
A.pc="dfgh" B.*pc=‘b’ C.*pc++=‘y’ D.pc=&c 24. 执行下列语句后的输出结果是(C )。 int hot=100; int &rad=hot; hot+=100; cout< A.0; B。100; C.200; D。300; 25. 下列对结构及其变量定义错误的是:( D ) A.struct MyStruct{ B。struct MyStruct{ int num; int num; char ch; char ch; }; }my; MyStruct my; C. struct{ D。 struct{ int num; int num; char ch; char ch; } }; C++ 复习资料 南昌大学计算中心 海天工作室 my; struct my; 26.下列关于指针运算的描述错误的是:(A ) A.在一定条件下,两个指针可以相加 B.在一定条件下,两个指针可以进行关系运算 C.在一定条件下,指针可以为空 D.在一定条件下,两个指针可以相互赋值 27.在C++语言中,对函数参数默认值描述正确的是:( D) A.函数参数的默认值只能设定一个 B.一个函数的参数若有多个,则参数默认值的设定可以不连续 C.函数参数必须设定默认值 D.在设定了参数的默认值后,该参数后面定义的所有参数都必须设定默认值 28. 不能作为函数重载判断依据的是:( D ) A.参数个数 B。参数类型 C。函数名字 D。返回类型 29. 以下程序的输出结果是:( B ) #include void prt(int *x,int *y,int *z){ cout<<++*x<<","<<++*y<<","<<*z++< } int a=10,c=20,b=40; void main(){ prt(&a,&b,&c); prt(&a,&b,&c); } A. 11,42,31 B。11,41,20 C。11,21,40 D。11,41,21 12,21,41 12,42,20 11,21,41 12,42,22 ?30.以下程序的输出结果是:( D )
#include void func(char **m){ ++m; cout<<*m< } void main(){ static char *a[]={"morning", "afternoon", "evening"}; char **p; p=a; func(p); } A.字符o的起始地址 B。字符a的起始地址 C.字符o D。afernoon
31.以下程序的输出结果是:( D ) #include int fun(char *s){ char *p=s; C++ 复习资料 南昌大学计算中心 海天工作室 while (*p!='\0') p++; return (p-s); } void main(){ cout< } A.0 B。1 C。2 D。3 32. 不正确的标识符是( B ) A. _a2 B. 2ai C. a2_i D. INt 33. 在 ( C ) 情况下适宜采用 inline 定义内联函数。 A. 函数体含有循环语句 B. 函数体含有递归语句 C. 函数代码少、频繁调用 D. 函数代码多、不常调用 34. 通过 ( A ) 调用虚函数时,采用动态绑定(binding)。 A. 对象指针 B. 对象名 C. 成员名限定 D. 派生类名 35. 假定一个类的构造函数为 A(int aa,int bb){a=aa++;b=a*bb++;} ,则执行 Ax(4,5); 语句后, x.a 和 x.b 的值分别为 ( C ) 。 A. 4 和 5 B. 5 和 4 C. 4 和 20 D. 20 和 5 36. 在 C++ 中有以下 4 条语句: static int hot=200;int &rad=hot; hot=hot+100;cout