C语言(21次)笔试题含答案
c语言测试题目及答案

c语言测试题目及答案一、选择题(每题2分,共20分)1. 下列哪个关键字不是C语言的控制语句?A. ifB. switchC. whileD. loop答案:D2. C语言中,一个整型变量int占用的字节数是多少?A. 1B. 2C. 4D. 8答案:C3. 在C语言中,以下哪个运算符用于计算两个数的乘方?A. *B. /C. ^D. %答案:C4. 下列哪个函数用于计算一个数的绝对值?A. abs()B. max()C. min()D. pow()答案:A5. 在C语言中,以下哪个是正确的字符串字面量?A. "Hello World"B. 'Hello World'C. {"Hello World"}D. ["Hello World"]答案:A6. 在C语言中,以下哪个是正确的数组声明?A. int array[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};B. int array[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};C. int array = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};D. int array[10] = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9;答案:B7. 在C语言中,以下哪个是正确的函数声明?A. void myFunction(int x, int y);B. int myFunction();C. void myFunction(int x, int y) {}D. int myFunction(int x, int y);答案:A8. 在C语言中,以下哪个是正确的递归函数调用?A. func(5);B. func(func(5));C. func(func(5, 3));D. func(5, 3);答案:B9. 下列哪个是C语言中合法的变量名?A. 2variableB. variable-nameC. variable#nameD. variable_name答案:D10. 在C语言中,以下哪个是正确的结构体声明?A. struct Person { int age; char name[50]; };B. struct { int age; char name[50]; };C. Person { int age; char name[50]; };D. Person struct { int age; char name[50]; };答案:A二、填空题(每空2分,共20分)1. C语言中,用于定义一个函数的关键字是________。
c笔试题目及答案

c笔试题目及答案1. 题目:以下哪个选项是C语言中的合法变量名?A. 2variableB. variable2C. _variableD. variable-2答案:C2. 题目:以下哪个关键字用于定义一个函数?A. classB. functionC. defD. int答案:D3. 题目:C语言中,哪个运算符用于将变量的值增加1?A. +=B. --C. +=D. ++答案:D4. 题目:以下哪个选项是C语言中的合法数组声明?A. int arr[10];B. int arr[];C. int arr[10] = {0};D. All of the above答案:D5. 题目:C语言中,哪个函数用于计算字符串的长度?A. strlen()B. length()C. size()D. count()答案:A6. 题目:以下哪个选项是C语言中正确的注释方式?A. // This is a single line commentB. /* This is a single line comment */C. // This is a single line comment/* This is a multi-line comment */D. All of the above答案:D7. 题目:C语言中,哪个关键字用于定义一个结构体?A. structB. classC. unionD. enum答案:A8. 题目:以下哪个选项是C语言中正确的文件包含指令?A. #include <stdio.h>B. #include "stdio.h"C. #include <stdio.h>#include "stdio.h"D. All of the above答案:A9. 题目:以下哪个选项是C语言中正确的条件语句?A. if (condition)B. switch (condition)C. case (condition)D. All of the above答案:A10. 题目:C语言中,哪个关键字用于定义一个指针?A. pointerB. ptrC. *D. reference答案:C。
c语言笔试考试题及答案

c语言笔试考试题及答案一、选择题1. 在C语言中,字符型数据使用的关键字是:A. charB. intC. floatD. double答案:A2. 下列标识符中合法的是:A. 123nameB. _nameC. name$D. %name答案:B3. 表达式"5 + 3 * 2 - 4 / 2"的值是:A. 9B. 12C. 10D. 8答案:C4. 下列哪个语句可以用于在屏幕上输出字符型变量c的值:A. printf("%c", c);B. printf("%d", c);C. printf("%s", c);D. printf("%f", c);答案:A5. 下列哪个语句可以用于从键盘输入整型变量a的值:A. scanf("%d", a);B. scanf("%f", &a);C. scanf("%s", a);D. scanf("%c", &a);答案:B二、编程题1. 编写一个程序,输入一个整数n,计算并输出n的阶乘。
答案:```c#include <stdio.h>int main() {int n, i;long long factorial = 1;printf("请输入一个整数:");scanf("%d", &n);for (i = 1; i <= n; i++) {factorial *= i;}printf("%d的阶乘为:%lld\n", n, factorial);return 0;}```2. 编写一个程序,输入一个整数n,判断并输出n是否为素数。
答案:```c#include <stdio.h>int isPrime(int num) {int i;if (num <= 1) {return 0;}for (i = 2; i <= num / 2; i++) { if (num % i == 0) {return 0;}}return 1;}int main() {int n;printf("请输入一个整数:"); scanf("%d", &n);if (isPrime(n)) {printf("%d是素数\n", n); } else {printf("%d不是素数\n", n); }return 0;}```三、简答题1. C语言中的指针有什么作用?答案:指针在C语言中用于直接访问内存地址,可以提高程序的执行效率和灵活性。
c语言笔试题目及答案

c语言笔试题目及答案C语言是一门通用计算机编程语言,应用广泛。
C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
下面是c语言笔试题目及答案,请参考。
c语言笔试题目及答案一、选择题((1)~(10)每小题2分,(11)~(50)每小题1分,共60分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。
(1)数据的存储结构是指________。
A)存储在外存中的数据 B)数据所占的存储空间量C)数据在计算机中的顺序存储方式 D)数据的逻辑结构在计算机中的表示答案:D评析:数据的逻辑结构在计算机存储空间中的存放形式形式称为数据的存储结构(也称数据的物理结构)。
(2)下列关于栈的描述中错误的是________。
A)栈是先进后出的线性表B)栈只能顺序存储C)栈具有记忆作用D)对栈的插入与删除操作中,不需要改变栈底指针答案:B评析:栈是一种特殊的线性表,又称先进后出表(FILO—First In Last Out)。
(3)对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是________。
A)冒泡排序为n2 B)冒泡排序为nC)快速排序为n D)快速排序为n(n一1)/2答案:D评析:假设线性表的长度为n,则在最坏情况下,冒泡排序需要经过n/2遍的从前往后扫描和n/2遍的从后往前扫描,需要比较次数为n(n-1)/2。
快速排序法的最坏情况比较次数也是n(n-1)/2。
(4)对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为________。
A)log2n B)n/2 C)n D)n+l答案:C评析:顺序查找过程中,如果被查找的元素是线性表中的最后一个元素,或者元素不在线性表中,则需要与线性表中所有的元素进行比较。
对长度为n的线性表进行顺序查找,在最坏情况下需要比较n次。
C语言笔试题及参考答案-中国联通

、局部变量能否和全局变量重名?答:能,局部会屏蔽全局。
要用全局变量,需要使用":: "局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。
对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。
2、如何引用一个已经定义过的全局变量?答:extern可以用引用头文件的方式,也可以用extern关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变理,假定你将那个变写错了,那么在编译期间会报错,如果你用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错。
3、全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么?答:可以,在不同的C文件中以static形式来声明同名全局变量。
可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值,此时连接不会出错4、语句for( ;1 ;)有什么问题?它是什么意思?答:和while(1)相同。
5、do……while和while……do有什么区别?答:前一个循环一遍再判断,后一个判断以后再循环6、请写出下列代码的输出内容#includemain(){int a,b,c,d;a=10;b=a++;c=++a;d=10*a++;printf( "b,c,d:%d,%d,%d ",b,c,d);return 0;}答:10,12,1207、static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。
全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式。
这两者在存储方式上并无不同。
C笔试题目及答案c语言笔试题目及答案

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语言笔试题带答案

c语言笔试题带答案【篇一:c语言的面试题_带答案-中软国际整理】p class=txt>1)限制变量的作用域2)设置变量的存储域(堆,主动分配内存也是堆)1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。
2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。
它是一个本地的全局变量。
3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。
那就是,这个函数被限制在声明它的模块的本地范围内使用。
4.全局变量和局部变量在内存中是否有区别?如果有,是什么区别?全局变量储存在静态数据库,局部变量在栈6.堆栈溢出一般是由什么原因导致的?堆栈溢出一般是循环的递归调用导致的,如果使用的大数据结构的局部变量,也可能导致堆栈溢出。
没有回收垃圾资源导致的是内存泄露最后内存耗尽。
20.不能做switch()的参数类型是:switch的参数不能为实型。
(只能是int char)9.写出float x 与“零值”比较的if语句。
if(x0.000001x-0.000001)3.在c语言库函数中将一个字符转换成整型的函数是atol()吗,这个函数的原型是什么?函数名: atol功能: 把字符串转换成长整型数函数的原型: long atol(const char *nptr);程序例:#include stdlib.h#include stdio.hint main(void){long l;char *str = 98765432;l = atol(lstr);printf(string = %s integer = %ld\n, str, l);return(0);}1.对于一个频繁使用的短小函数,在c语言中应用什么实现,在c++中应用什么实现?c用宏定义,c++用inline8.软件测试都有那些种类?黑盒:针对系统功能的测试白合:测试函数功能,各函数接口9.确定模块的功能和模块的接口是在软件设计的那个阶段完成的?概要设计阶段11.unsigned char *p1;unsigned long *p2;p1=(unsigned char *)0x801000;p2=(unsigned long *)0x810000;请问p1+5=? ;p2+5=? ;答:p1+5=0x801005 ;p2+5=0x810014 ;1.请问下面程序有什么错误?int a[60][250][1000],i,j,k;for(k=0;k1000;k++)for(j=0;j250;j++)for(i=0;i60;i++)a[i][j][k]=0;把循环语句内外换一下(编译的时候没错,运行的时候出错,但这个数组太大,如果放在栈中,还是会溢出,要作为全局变量)2.#define max_cb 500void lmiquerycsmd(struct msgcb * pmsg){unsigned char uccmdnum;......for(uccmdnum=0;uccmdnummax_cb;uccmdnum++){......;}死循环(unsigned char 0 到 255)3.以下是求一个数的平方的程序,请找出错误:#define square(a)((a)*(a))int a=5;int b;b=square(a++);//a被加了2次 a=7,b=252、有一个16位的整数,每4位为一个数,写函数求他们的和。
c语言笔试考试题及答案

c语言笔试考试题及答案C语言笔试考试题及答案一、选择题(每题2分,共20分)1. C语言中,以下哪个是合法的变量名?A. 2variableB. variable-nameC. variable_nameD. variable$name答案:C2. 下列哪个选项是C语言的关键字?A. defineB. intC. integerD. float答案:B3. 以下哪个语句不能通过编译?A. int a = 10;B. int b = 10.5;C. int c = 'a';D. int d = 1.0;答案:B4. C语言中,以下哪个函数用于计算两个数的和?A. pow()B. sqrt()C. sin()D. sum()答案:D(注意:sum()不是C语言标准库函数,这里假设它是一个自定义函数)5. 以下哪个选项是正确的C语言数组声明?A. int numbers[];B. int numbers[10] = {};C. int numbers = 10;D. int [10] numbers;答案:B6. 以下哪个是C语言中正确的字符串字面量?A. "Hello World"B. 'Hello World'C. "Hello\nWorld"D. "Hello\"World"答案:A7. 在C语言中,以下哪个是正确的函数声明?A. void myFunction();B. int myFunction;C. myFunction();D. int myFunction()答案:A8. 下列哪个选项不是C语言的标准输入输出库函数?A. printf()B. scanf()C. cout()D. getchar()答案:C9. 在C语言中,以下哪个是正确的逻辑运算符?A. &&B. ||C. ||D. ++答案:A10. 下列哪个选项是C语言的预处理指令?A. #includeB. defineC. ifD. else答案:A二、简答题(每题5分,共20分)1. 请简述C语言中数组和指针的区别。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第二十一次等级考试二级(C与C++语言)笔试试卷时间:2004年10月16日一、是非判断题(每小题1分,共10分)1.应用程序在执行过程中,需要通过打印输出数据时,一般先形成一个打印作业,将其存放在硬盘中的一个指定队列中。
当打印空闲时,就会按先来后服务的方式从中取出待打印的作业进行打印。
( 1 )2.若无进程牌运行状态,则就绪队列和等待队列均为空。
( 2 )3.多道程序设计是指在一台处理上迸发运行多个程序逻辑。
( 3 )4.黑盒法是软件测试方法中的静态测试方法之一。
( 4 )5.软件的详细设计就是要编写出具体的程序。
( 5 )6.软件生命周期中花费最多的阶段是软件维护。
( 6 )7.Windows 是单用户多任务操作系统,UNIX是多用户多任务操作系统。
(7 )8.进程把程序作为它的运行实体,没有程序也就没有进程。
(8 )9.在结构化分析中,用于描述加工逻辑的主要工具有三种,即:结构化语言、判定表和判定树。
(9 )10.作业调度程序从后备队列中选一个作业装入主存后,决定能否占用处理机的是设备调度程序。
(10 )二、单项选择题(1分/小题,共5分)1.交换技术是在(11 )之间交换程序和数据。
11(A)主内存与CPU (B)CPU与外设(C)主内存与外存(D)外存与CPU2.以下的工具中哪个不是软件详细设计中使用的工具(12 )。
12(A)数据流图(B)N-S图(C)PDA图(D)PDL语言3.任何两个并发进程之间(13 )。
13(A)一定存在互斥关系(B)一定存在同步关系(C)一定彼此独立无关(D)可能存在同步或互斥关系4.进程从运行状态进入就绪状态的原因可能是(14 )。
14(A)被选中占有处理机(B)等待某一事件(C)等待的事件已发生(D)时间片用完5.算法指的是(15 )。
15(A)计算机程序(B)解决问题的有限运算序列(C)排序算法(D)解决问题的计算方法一、单项选择题(每小题1分,共10分)1.以下程序运行后,输出结果是(16 )。
main(){ int a=1,b=2,m=0,n=0,k;k=(n=b>a)||(m=a<b);printf(“%d,%d\n”,k,m);}16(A)0,0 (B)0,1 (C)1,0 (D)1,1 2.以下程序输出的结果是(17 )。
main(){ int m=5;if(m++>5)printf(“%d”,m++);elseprintf(“%d”,m--);}17(A)7 (B)6 (C)5 (D)4 3.下列程序运行的结果是(18 )。
main(){ int a=10,b=11,c=12;printf(“%d\n”, a<c?a:c?d=a>b:b );}18(A)11 (B)0 (C)10 (D)12 4.已知:int a,b;下列switch语句中,(19 )是正确的。
19(A)switch(a) (B)switch(a+b){ {case a: a++;break; case 1: a++;case b: b++;break; case 2: b++;} }(C)switch(a*b) (D)switch(a/10+b){ {case 1,2: a+b; case a+b: ++a;break;case 3,4: a-b; case a-b: --b;} }5.下列程序由两个件f1.c和f2.c组成。
f1.c文件的内容:# include <stdio.h># include <f2.c># define N 3main(){ int i;for(i=1;i<=N;i++)printf(“%d,”,sum(i));}f2.c文件的内容:sum(int n){ int t;static int s=0;for(t=1;t<=n;t++)s+=t*t;return(s);}程序的运行输出结果是(20 )。
20(A)1,5,14, (B)1,2,3, (C)1,6,20, (D)1,4,9,6.C++中,有以下定义:int a,b; 若要从键盘输入变量a,b的值,则正确的输入语句是(21 )。
21(A)cin>>a>>b; (B)cin<<a<<b;(C)cout>>a>>b; (D)cout <<a<<b;7.下列程序运行的结果是(22 )。
# include <stdio.h># define swap(x,y) {x^=y; y^=x; x^=y; }main(){ int a=010,b=1;swap(a,b);printf(“%d,%d\n”,a,b);}22(A)1,8 (B)8,1 (C)10,1 (D)1,108.以下scanf 函数调用中对结构体变量成员的错误引用是(23 )。
struct student{ char name[20];int age;int sex;}stud[5],*p;p=stud;23(A)scanf(“%s”,stud[0].name); (B)scanf(“%d”,&stud[0].age);(C)scanf(“%d”,p->age); (D)scanf(“%d”,&(p->sex) );9.在以下关于构造函数的描述中,错误的是(24 )。
24(A)构造函数可以重载(B)构造函数可以带缺省形参值(C)构造函数名必须与类同名(D)构造函数可以带回返回值10.下面对C++函数重载的描述中,错误的是(25 )25(A)函数名相同(B)函数参数个数或参数类型至少有一个不同(C)函数参数不可以用缺省值(D)函数返回值必须不同二、读程序回答问题(每个选择3分,共45分)。
1.下列程序运行的结果为(26 )。
# include <stdio.h>void fun(char *c,int d){ *c=*c+1;d=d+1;printf("%c,%c,",*c,d);}main(){ char a='A',b='a';fun(&b,a);printf("%c,%c\n",a,b);}26(A)B,a,B,a (B)a,B,a,B (C)A,b,A,b (D)b,B,A,b 2.下面程序的输出是(27 )。
# include <stdio.h>void test(int *u,int *v){ int *w;w=u;u=v;v=w;}main(){ int m=3,n=6,*x=&m,*y=&n;test(x,y);printf("%d %d", m,n);}27(A)3 6 (B)6 3 (C)0 0 (D)编译出错3.以下程序的输出结果是(28 )。
# include <stdio.h>main(){ int x,y;for(x=1,y=1;x<=15;x++){ if(y>=20)break;if(y%3==1){ y+=3;continue;}y-=10;}printf("%d,%d\n",x,y);}28(A)8,22 (B)7,20 (C)6,22 (D)5,204.fun(char *t1,char *t2){ int i,j;while(*t2!=0){ for(i=0,j=0;t1[i];i++)if(t1[i]!=*t2)t1[j++]=t1[i];t1[j]='\0';t2++;}}main(){ char a[]="abcde",b[]="ae";fun(a,b);puts(a);}该程序的输出结果为(29 )。
29(A)abcde (B)bcd (C)abcdeae (D)ae5.以下程序的输出结果是(30 )。
# include <stdio.h># define FUN(y) 2.84+y# define PR(a) printf("%d",(int)(a))# define PRINT(a) PR(a);putchar('\n')main(){ int x=2;PRINT(FUN(5)*x);}30(A)11 (B)12 (C)14 (D)156.读下列程序,回答问题。
# include <stdio.h>void sort(int a[]){ int i,j,t;for(i=0;i<4;i++)for(j=0;j<4-i;j++)if(a[j]>a[j+1]){ t=a[j]; a[j]=a[j+1]; a[j+1]=t; }}main(){ int a[5]= {5,10,-7,3,7},i,t,j;sort(a);for(i=0;i<=4;i++)printf("%d\n",a[i]);}关于程序的说法正确的是(31 )。
31(A)用选择法对数据按从小到大排列(B)用选择法对数据按从大到小排列(C)用冒泡法对数据按从小到大排列(D)用冒泡法对数据按从大到小排列7.执行下面程序时输入“I will pass the exam!”,其输出结果是(32 )。
如果将程序中的scanf(“%s”,s)改为gets(s);同样输入”I will pass the exan!”,则程序的输出结果是(33 )。
# include <stdio.h>int fun(char s[]){ int i=0;while(s[i]!='\0')i++;return i;}void main(){ char s[81];printf("Please input a string:\n");scanf("%s",s);printf("%d\n",fun(s));}32(A)5 (B)21 (C)1 (D)1733(A)5 (B)21 (C)1 (D)17 8.以下是一个C++程序# include <iostream.h>class Sample{ int x,y;public:Sample() {x=y=0; }Sample(int a,int b) {x=a; y=b;}void disp(){ cout<<"x="<<x<<"y="<<y<<endl; }}void main(){ Sample s1,s2(2,3);s1.disp();s2.disp();}(1)该程序主函数中s1.disp()的输出为(34 )。