c++笔试题(概念)试题整理

合集下载

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。

100条经典C语言笔试题目(全)

100条经典C语言笔试题目(全)

100条经典C语言笔试题目1、请填写bool,float,指针变量与“零值”比较的if语句。

提示:这里“零值”可以是0,0.0,FALSE 或者“空指针”。

例如int变量n与“零值”比较的if语句为:if ( n == 0 )if ( n != 0 )以此类推。

(1)请写出 bool flag 与“零值”比较的 if 语句:【标准答案】if ( flag )if ( !flag )(2)请写出 float x 与“零值”比较的 if 语句:【标准答案】 const float EPSINON = 0.00001;if ((x >= - EPSINON) && (x <= EPSINON)不可将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”此类形式。

(3)请写出 char *p 与“零值”比较的 if 语句【标准答案】 if (p == NULL)if (p != NULL)2、以下为 Linux下的 32 位 C程序,请计算 sizeof 的值。

char str[] = “Hello” ;char *p = str ;int n = 10;请计算(1)sizeof (str ) =(2)sizeof ( p ) =(3)sizeof ( n ) =【标准答案】(1)6、(2)4、(3)4(4)void Func ( char str[100]) {……;} 请计算 sizeof( str ) = (5)void *p = malloc( 100 );请计算sizeof ( p ) =【标准答案】(4)4、(5)43、 long a=0x801010;a+5=?【标准答案】0x801010用二进制表示为:“1000 0000 0001 0000 0001 0000”,十进制的值为8392720,再加上5就是8392725。

4、用变量a给出下面的定义e) 一个有10个指针的数组,该指针是指向一个整型数的;f) 一个指向有10个整型数数组的指针 ;g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数;h) 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数;【标准答案】e)int * a[10]; f)int (*a)[10]g)int (*a)(int); h) int (*a[10])(int)5、设有以下说明和定义:typedef union {long i; int k[5]; char c;} DATE;struct data { int cat; DATE cow; double dog;} too;DATE max;则语句 printf("%d",sizeof(struct date)+sizeof(max));的执行结果是:_____【标准答案】DATE是一个union, 变量公用空间. 里面最大的变量类型是int[5], 占用20个字节. 所以它的大小是20.data是一个struct, 每个变量分开占用空间. 依次为int4 + DATE20 + double8 = 32.所以结果是 20 + 32 = 52。

C笔试题目及答案c语言笔试题目及答案

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语言笔试题目及答案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 经典笔试题(附答案)

C  经典笔试题(附答案)

8:下列多重继承时的二义性问题如何解决?class A{ //类A的定义public:void print () {cout<<"Hello, this is A"<<endl;}};class B{ //类B的定义public:void print () {cout<<"Hello, this is B"<<endl;}};class C : public A, public B{ //类C由类A和类B共同派生而来public:void disp () {print ();}//编译器无法决定采用A类中定义的版本还是B类中的版本};解答:若两个基类中具有同名的数据成员或成员函数,应使用成员名限定来消除二义性,如:void disp () {A: : print () ; //加成员名限定A::}print()但更好的办法是在类C中也定义一个同名print函数,根据需要调用A::还是Bprint(),从而实现对基类同名函数的隐藏::9:下列公共基类导致的二义性如何解决?class A{ //公共基类public: //public 成员列表void print(){cout << "this is x in A: " <<endl;}class B: public A{};class C: public A{};class D : public B, public C{};void main(){D d;//声明一个D类对象dA* pa=(A*) &d; //上行转换产生二义性d.print () ; //print ()具有二义性,系统不知道是调用B类的还是C类的print ()函数}注意:把子类的指针或引用转换成基类指针或引用是上行转换,把基类指针或引用转换成子类指针或引用是下行转换。

c语言笔试题带答案

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工程师笔试题C工程师笔试题一、选择题(每题2分,共40分)1. 下列哪个是C语言的关键字?A. functionB. structC. classD. object2. 下列哪个语句用于释放动态分配的内存?A. deleteB. freeC. mallocD. new3. 下列哪种循环语句不会执行循环体?A. forB. whileC. do-whileD. if4. 下列语句中,哪个是合法的数组定义方式?A. int array[10];B. array[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};C. array = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};D. int array = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};5. 下列哪个函数声明是合法的?A. int add(int a, b);B. int add(int a, int b)C. add(int a, int b) int;D. int add(a, b);二、填空题(每题4分,共40分)1. 以下程序的输出结果是________。

```c#include <stdio.h>void foo(int *x) {*x += 5;}int main() {int a = 10;foo(&a);printf("%d", a);return 0;}```2. 以下程序的输出结果是_________。

```c#include <stdio.h>int main() {int array[5] = {1, 2, 3, 4, 5};for (int i = 0; i < 5; i++) {printf("%d", array[i]);}return 0;}```3. 填写下面函数的返回值。

c语言笔试考试题及答案

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语言中数组和指针的区别。

c考试试题及答案

c考试试题及答案

c考试试题及答案C考试试题及答案一、选择题(每题2分,共20分)1. 在C语言中,以下哪个是合法的变量名?A. 3variableB. variable3C. variable-threeD. variable#3答案:B2. 下列哪个选项不是C语言的标准输入输出函数?A. printf()B. scanf()C. coutD. getchar()答案:C3. 以下哪个语句用于C语言中的条件判断?A. ifB. switchC. forD. while答案:A4. 在C语言中,哪个关键字用于定义一个函数?A. functionB. defC. methodD. void答案:D5. 以下哪个是C语言中的数组声明方式?A. int numbers;B. int numbers[];C. int numbers[10] = {0};D. All of the above答案:D...二、填空题(每空2分,共20分)1. 在C语言中,一个基本的数据类型是 _______ ,用于存储字符。

答案:char2. 用于计算两个数的乘积的运算符是 _______ 。

答案:*3. 在C语言中,用于定义一个结构体的关键字是 _______ 。

答案:struct4. 用于结束一个循环的关键字是 _______ 。

答案:break5. 用于声明一个指针的关键字是 _______ 。

答案:*...三、简答题(每题10分,共30分)1. 简述C语言中指针和数组的关系。

答案:在C语言中,指针和数组有着紧密的联系。

数组名可以被看作是指向数组首元素的常量指针。

例如,int arr[10]; arr 就是一个指向 int 的指针,它指向 arr[0]。

指针可以通过地址运算来访问数组中的元素。

2. 解释C语言中的递归函数。

答案:递归函数是一种自我调用的函数,即函数在其定义中调用自身。

递归函数通常用于解决可以分解为相似子问题的问题,如阶乘计算、斐波那契数列等。

C语言笔试题总结

C语言笔试题总结

C语言笔试题总结一、选择题(1)下面叙述正确的是(c)a.算法的执行效率与数据的存储结构无关b.算法的空间复杂度是指算法程序中指令(或语句)的条数c.算法的有穷*是指算法必须能在执行有限个步骤之后终止d.以上三种描述都不对(2)以下数据结构中不属于线*数据结构的是(c)a.队列b.线*表c.二叉树d.栈(3)在一棵二叉树上第5层的结点数最多是(b)注:由公式2k-1得a.8b.16c.32d.15(4)下面描述中,符合结构化程序设计风格的是(a)a.使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑b.模块只有一个入口,可以有多个出口c.注重提高程序的执行效率d.不使用goto语句(5)下面概念中,不属于面向对象方法的是(d)注:p55-58a.对象b.继承c.类d.过程调用(6)在结构化方法中,用数据流程图(dfd)作为描述工具的软件开发阶段是(b)a.可行*分析b.需求分析c.详细设计d.程序编码(7)在软件开发中,下面任务不属于设计阶段的是(d)a.数据结构设计b.给出系统模块结构c.定义模块算法d.定义需求并建立系统模型(8)数据库系统的核心是(b)a.数据模型b.数据库管理系统c.软件工具d.数据库(9)下列叙述中正确的是(c)a.数据库是一个*的系统,不需要*作系统的支持b.数据库设计是指设计数据库管理系统c.数据库技术的根本目标是要解决数据共享的问题d.数据库系统中,数据的物理结构必须与逻辑结构一致(10)下列模式中,能够给出数据库物理存储结构与物理存取方法的是(a)注:p108a.内模式b.外模式c.概念模式d.逻辑模式(11)算法的时间复杂度是指(c)a.执行算法程序所需要的时间b.算法程序的长度c.算法执行过程中所需要的基本运算次数d.算法程序中的指令条数(12)算法的空间复杂度是指(d)a.算法程序的长度b.算法程序中的指令条数c.算法程序所占的存储空间d.算法执行过程中所需要的存储空间(13)设一棵完全二叉树共有699个结点,则在该二叉树中的叶子结点数为(b)注:利用公式n=n0+n1+n2、n0=n2+1和完全二叉数的特点可求出a.349b.350c.255d.351(14)结构化程序设计主要强调的是(b)a.程序的规模b.程序的易读*c.程序的执行效率d.程序的可移植*(15)在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是(d)注:即第一个阶段a.概要设计b.详细设计c.可行*分析d.需求分析(16)数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。

华为c 笔试题及答案

华为c   笔试题及答案

华为c 笔试题及答案华为C笔试题及答案一、简介华为C是华为公司面向应届大学生的笔试选拔考试,旨在评估应聘者的综合素质和潜力。

本文将介绍华为C笔试题目及答案,帮助应聘者更好地准备华为C笔试。

二、题目及答案1. C语言基础题目:请编写一个程序,输出1-100之间的所有偶数。

答案:#include <stdio.h>int main() {int i;for(i=1; i<=100; i++) {if(i%2 == 0) {printf("%d ", i);}}return 0;}2. 数据结构与算法题目:请说明哈希表的原理及其应用场景。

答案:哈希表是一种根据关键字直接访问内存地址的数据结构。

其原理是通过哈希函数将关键字转换为一个索引值,然后将数据存储在对应索引值的位置上。

哈希表的应用场景包括缓存系统、数据库索引、字典等。

3. 计算机网络题目:请解释TCP和UDP协议的区别及其适用场景。

答案:TCP和UDP都是传输层的协议,但有一些区别。

TCP是面向连接的可靠传输协议,能够保证数据的完整性和顺序,适用于需要可靠传输的场景,如文件传输。

UDP是无连接的不可靠传输协议,不保证数据的完整性和顺序,适用于实时性要求较高的场景,如音视频传输。

4. 数据库题目:请解释事务的概念,并说明ACID原则。

答案:事务是数据库操作的最小单位,是一组对数据库进行的操作。

ACID是事务的四个基本属性,分别是原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability),保证事务的可靠性和稳定性。

5. 操作系统题目:请解释什么是进程和线程,并说明它们的区别。

答案:进程是操作系统进行资源分配和调度的最小单位,是程序在执行过程中的一个实例。

线程是进程中的一条执行路径,是CPU调度的最小单位。

进程之间相互独立,拥有独立的地址空间,而线程共享同一地址空间。

c语言笔试题和答案

c语言笔试题和答案

c语言笔试题和答案C语言是计算机编程领域中的基础语言之一,广泛应用于系统编程、嵌入式开发等领域。

以下是一套C语言的笔试题和答案,旨在帮助考生复习和测试自己的C语言知识。

C语言笔试题一、选择题(每题2分,共20分)1. 下列哪个选项是C语言中的合法变量名?A. 2variableB. variable-nameC. variable_nameD. variable-name22. C语言中,哪个关键字用于定义一个函数?A. defineB. functionC. voidD. int3. 在C语言中,以下哪个表达式的结果为真?A. 5 > 3 && 3 < 2B. 5 > 3 || 3 < 4C. 5 > 3 && 3 < 4D. 5 == 5 || 3 < 24. 下列哪个语句用于在C语言中进行循环控制?A. ifB. switchC. forD. while5. 在C语言中,数组的索引是从哪个数字开始的?A. 0B. 1C. -1D. 根据数组类型而定6. 下列哪个函数可以用于计算两个数的最大值?A. max()B. min()C. abs()D. pow()7. C语言中,哪个预处理指令用于文件包含?A. #includeB. #importC. #defineD. #require8. 下列哪个选项是C语言中的一个标准库函数?A. printf()B. print()C. display()D. show()9. 在C语言中,哪个关键字用于声明一个指针变量?A. varB. pointerC. ptrD. int*10. 下列哪个语句可以用于在C语言中定义一个结构体?A. structB. defineC. typeD. class二、简答题(每题5分,共30分)1. 解释C语言中数组和指针的区别。

2. 描述C语言中函数的调用过程。

c语言常见笔试题

c语言常见笔试题

C语言常见笔试题
以下是一些常见的C语言笔试题,这些题目涵盖了基本的语法、数据类型、流程控制等方面。

请注意,这只是一小部分可能出现在C 语言笔试中的题目,实际的笔试可能会根据岗位的不同涵盖更广泛的主题。

基本语法:
编写一个程序,输出"Hello,World!"。

变量与数据类型:
声明一个整数变量并初始化为10,输出该变量的值。

运算符:
编写一个程序,计算并输出两个整数的和、差、积、商和余数。

条件语句:
编写一个程序,输入一个整数,判断它是否是正数、负数还是零,并输出相应的提示信息。

循环结构:
使用循环结构输出1到10的所有偶数。

数组:
声明一个整数数组,存储5个成绩,并计算平均值。

字符串处理:
编写一个程序,输入一个字符串,然后输出字符串的长度。

函数:
编写一个函数,接受两个整数参数,返回它们的和。

指针:
声明一个整数变量,然后声明一个指向该变量的指针,并通过指针修改变量的值。

结构体:
声明一个表示学生的结构体,包括学生的姓名、学号和成绩,并输出这些信息。

文件操作:
编写一个程序,打开一个文件,读取文件中的内容并输出到屏幕上。

这些问题涵盖了C语言中的一些基本概念,包括语法、数据类型、流程控制、函数、指针等。

在准备C语言笔试时,建议练习这些题目以熟悉常见的编程任务。

c语言经典笔试题(非常全)

c语言经典笔试题(非常全)

1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL2. 写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个。

#define MIN(A,B) ((A) <= (B) (A) : (B))4. 嵌入式系统中经常要用到无限循环,你怎么样用C编写死循环呢这个问题用几个解决方案。

我首选的方案是:while(1){}一些程序员更喜欢如下方案:for(;;){}第三个方案是用 gotoLoop:...goto Loop;5. 用变量a给出下面的定义a) 一个整型数(An integer)b) 一个指向整型数的指针(A pointer to an integer)c) 一个指向指针的的指针,它指向的指针是指向一个整型数(A pointer to a pointer to an integer)d) 一个有10个整型数的数组(An array of 10 integers)e) 一个有10个指针的数组,该指针是指向一个整型数的(An array of 10 pointers to integers)f) 一个指向有10个整型数数组的指针(A pointer to an array of 10 integers)g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数(A pointer to a function that takes an integer as an argument and returns an integer)h) 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数( An array of ten pointers to functions that take an integer argument and return an integer )答案是:a) int a; 关键字static的作用是什么这个简单的问题很少有人能回答完全。

c语言c语言考试题库及答案

c语言c语言考试题库及答案

c语言c语言考试题库及答案一、选择题1. 在C语言中,用于定义变量的关键字是:A. defineB. varC. intD. let答案:C2. 下列哪个是C语言中的合法标识符?A. 2variableB. variable2C. variable-twoD. variable#答案:B3. 在C语言中,哪个运算符用于计算两个数的乘积?A. +B. -C. *D. /答案:C4. C语言中,以下哪个是正确的字符串字面量?A. "Hello World"B. 'Hello World'C. "Hello\nWorld"D. "Hello\tWorld"答案:A5. 以下哪个是C语言中的控制语句?A. ifB. switchC. both A and BD. none of the above答案:C二、填空题6. 在C语言中,一个基本的程序结构包括____、____和____。

答案:预处理指令;函数定义;语句7. 一个C语言程序的执行从____函数开始。

答案:main8. 在C语言中,使用____关键字可以定义一个函数。

答案:void 或其他数据类型9. 一个C语言数组的元素默认情况下是按照____顺序存储的。

答案:连续10. C语言中的____运算符用于连接字符串。

答案:+三、简答题11. 解释C语言中指针的概念。

答案:指针是一种变量,它存储了另一个变量的内存地址。

通过指针,可以直接操作内存地址中的数据,实现数据的间接引用。

12. 描述C语言中结构体的定义和使用。

答案:结构体是一种用户自定义的数据类型,它允许将多个不同类型的变量组合成一个单一的类型。

定义结构体时,使用struct关键字,然后定义结构体的名称和成员。

使用结构体时,可以创建结构体变量,并通过点(.)运算符访问其成员。

四、编程题13. 编写一个C语言程序,计算并输出1到100的整数之和。

c语言笔试题(答案)

c语言笔试题(答案)

c语言笔试题(答案)笔试题一、填空题(每个空4分,共28分)1)struct tagABC{char name[10];char sex;long sno;float score[4];}*pAbc;(四字节对齐)pAbc=NULL;那么,执行pAbc+=2;之后pAbc的值为(64 )2)如下代码,最终value的值是(8)int *p1,*p2;int value;p1=(int*)0×400;p2=(int*)0×408;value = p2-p1;3)如下代码,printf的结果为(2)#include〈stdio.h〉#include〈string.h〉void main(void){char acNew[20]= “\\0\0”;printf(“%d\n”,strlen(acNew));}4) 有如下程序段,运行该程序的输出结果是(33)main (){int y=3,x=3,z=1;printf(“%d%d\n”,(++x,y++),z+2);}5)设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后,n的值为(2)6)struct tagAAA{Unsigned char ucId:1;Unsigned char ucPara0:2;Unsigned char ucState:6;Unsigned char ucTail:4;Unsigned char ucAvail;Unsigned char unTail2:4;Unsigned long ulData;}AAA_S问:AAA_S在字节对齐分别为1,4情况下,占用的空间大小分别是多少?( 9)(12 )二、选择题(每题2分,共34分)1)若有说明int(*p)[3];以下叙述正确的是( D )A:p是指针数组B:(*p)[3]和*p[3]等价C:p是指向一维数组中任何一个元素的指针D:p是指向含有3个整型元素的一维数组的指针2)以下关于单元测试的描述,哪些是对的?(D)A:黑盒测试针对软件的功能,不考虑功能的实现细节;B:白盒测试针对源代码的测试,从程序功能的具体实现上找错;C:路径覆盖是黑盒测试的一种方法,编写测试用例使程序的每条语句都能走到;D:条件覆盖是百盒测试的一种方法, 编写测试用例使程序的每个判断的各种情况都能到3)以下可以用于任务间通信的有(ABCD)A:共享内存 B:信号量C:消息队列和管道 D:socket调用4)有关结构,以下哪些描述是对的?(BC)A:为了测试方便,尽量把一个结构的功能设计得多一些B:不同结构间的关系不要过于复杂C:结构中的各元素应代表同一事务的不同侧面,而不应把描述没有关系或关系很弱的不同事务的元素放到同一结构中D:结构中元素的布局与排列顺序可以随意设计5)关于强制类型转化,下面说法正确的是(ABCD)A:当目的结构的空间大于源结构的空间时,要重点关注内存访问超过源结构范围的情形,可能越界;B:当目的结构的空间小于源结构的空间时,要重点关注对目的结构赋值不能完全覆盖源结构范围的情形,可能遗漏;C:结构体之间的强制类型转换时,其成员字段的数据类型的差异也是要格外小心的; D:与结构体之间的强制类型转换相比,基本数据结构的强制类型转换更容易出现上面描述的情况,使用的时候,一定要慎之又慎;6)正确的使用assert,软件系统不会对人为原因造成的错误进行处理。

C语言笔试题_C笔试题大全14_附答案

C语言笔试题_C笔试题大全14_附答案

C语言笔试题_C笔试题大全14_附答案c语言常见笔试题总结【1 使用宏】1.1 #error的作用?#error用于向编译器报错,并输出它后面带的错误信息。

例如:#ifndef SOMETHING#error SOMETHING not defined!#endif如果在这段代码之前未定义过SOMETHING,则在编译时出错,并给出"SOMETHING not defined!"的错误信息。

1.2 定义一个宏,求出给定数组中的元素的个数#define NELEMENTS(array) (sizeof(array) / sizeof((array)[0])) 【2 数据声明和定义】给定以下类型的变量a的定义式:a) An integerint a;b) A pointer to an integerint *a;c) A pointer to a pointer to an integerint **a;d) An array of 10 integersint a[10];e) An array of 10 pointers to integersint *a[10];f) A pointer to an array of 10 integersint (*a)[10];g) A pointer to a function that takes an integer as an argument and returns an integerint (*a)(int );h) An array of ten pointers to function s that take an integer argument and return an integeri nt (*a[10] ) (int );【3 复杂类型(1)】有如下表达式:char (*(*x())[])();请用文字描述x是什么。

c语言经典笔试题(非常全)

c语言经典笔试题(非常全)

1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL2. 写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个。

#define MIN(A,B) ((A) <= (B) (A) : (B))4. 嵌入式系统中经常要用到无限循环,你怎么样用C编写死循环呢?这个问题用几个解决方案。

我首选的方案是:while(1){}一些程序员更喜欢如下方案:for(;;){}第三个方案是用gotoLoop:...goto Loop;5. 用变量a给出下面的定义a) 一个整型数(An integer)b) 一个指向整型数的指针(A pointer to an integer)c) 一个指向指针的的指针,它指向的指针是指向一个整型数(A pointer to a pointer to an integer)d) 一个有10个整型数的数组(An array of 10 integers)e) 一个有10个指针的数组,该指针是指向一个整型数的(An array of 10 pointers to integers)f) 一个指向有10个整型数数组的指针(A pointer to an array of 10 integers)g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数(A pointer to a function that takes an integer as an argument and returns an integer)h) 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数(An array of ten pointers to functions that take an integer argument and return an integer )答案是:a) int a; // An integerb) int *a; // A pointer to an integerc) int **a; // A pointer to a pointer to an integerd) int a[10]; // An array of 10 integerse) int *a[10]; // An array of 10 pointers to integersf) int (*a)[10]; // A pointer to an array of 10 integersg) int (*a)(int); // A pointer to a function a that takes an integer argument and returns an integerh) int (*a[10])(int); // An array of 10 pointers to functions that take an integer argument and return an integer6. 关键字static的作用是什么?这个简单的问题很少有人能回答完全。

c++笔试题(概念)试题整理

c++笔试题(概念)试题整理

1.进程和线程的差别。

线程是指进程内的一个执行单元,也是进程内的可调度实体.与进程的区别:(1)调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位(2)并发性:不仅进程之间可以并发执行,同一个进程的多个线程之间也可并发执行(3)拥有资源:进程是拥有资源的一个独立单位,线程不拥有系统资源,但可以访问隶属于进程的资源.(4)系统开销:在创建或撤消进程时,由于系统都要为之分配和回收资源,导致系统的开销明显大于创建或撤消线程时的开销。

2.测试方法人工测试:个人复查、抽查和会审机器测试:黑盒测试和白盒测试2.Heap与stack的差别。

Heap是堆,stack是栈。

Stack的空间由操作系统自动分配/释放,Heap上的空间手动分配/释放。

Stack空间有限,Heap是很大的自由存储区C中的malloc函数分配的内存空间即在堆上,C++中对应的是new操作符。

程序在编译期对变量和函数分配内存都在栈上进行,且程序运行过程中函数调用时参数的传递也在栈上进行3.Windows下的内存是如何管理的?4.介绍.Net和.Net的安全性。

5.客户端如何访问.Net组件实现Web Service?6.C/C++编译器中虚表是如何完成的?7.谈谈COM的线程模型。

然后讨论进程内/外组件的差别。

8.谈谈IA32下的分页机制小页(4K)两级分页模式,大页(4M)一级9.给两个变量,如何找出一个带环单链表中是什么地方出现环的?一个递增一,一个递增二,他们指向同一个接点时就是环出现的地方10.在IA32中一共有多少种办法从用户态跳到内核态?通过调用门,从ring3到ring0,中断从ring3到ring0,进入vm86等等11.如果只想让程序有一个实例运行,不能运行两个。

像winamp一样,只能开一个窗口,怎样实现?用内存映射或全局原子(互斥变量)、查找窗口句柄..FindWindow,互斥,写标志到文件或注册表,共享内存。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.进程和线程的差别。

线程是指进程内的一个执行单元,也是进程内的可调度实体.与进程的区别:(1)调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位(2)并发性:不仅进程之间可以并发执行,同一个进程的多个线程之间也可并发执行(3)拥有资源:进程是拥有资源的一个独立单位,线程不拥有系统资源,但可以访问隶属于进程的资源.(4)系统开销:在创建或撤消进程时,由于系统都要为之分配和回收资源,导致系统的开销明显大于创建或撤消线程时的开销。

2.测试方法人工测试:个人复查、抽查和会审机器测试:黑盒测试和白盒测试2.Heap与stack的差别。

Heap是堆,stack是栈。

Stack的空间由操作系统自动分配/释放,Heap上的空间手动分配/释放。

Stack空间有限,Heap是很大的自由存储区C中的malloc函数分配的内存空间即在堆上,C++中对应的是new操作符。

程序在编译期对变量和函数分配内存都在栈上进行,且程序运行过程中函数调用时参数的传递也在栈上进行3.Windows下的内存是如何管理的?4.介绍.Net和.Net的安全性。

5.客户端如何访问.Net组件实现Web Service?6.C/C++编译器中虚表是如何完成的?7.谈谈COM的线程模型。

然后讨论进程内/外组件的差别。

8.谈谈IA32下的分页机制小页(4K)两级分页模式,大页(4M)一级9.给两个变量,如何找出一个带环单链表中是什么地方出现环的?一个递增一,一个递增二,他们指向同一个接点时就是环出现的地方10.在IA32中一共有多少种办法从用户态跳到内核态?通过调用门,从ring3到ring0,中断从ring3到ring0,进入vm86等等11.如果只想让程序有一个实例运行,不能运行两个。

像winamp一样,只能开一个窗口,怎样实现?用内存映射或全局原子(互斥变量)、查找窗口句柄..FindWindow,互斥,写标志到文件或注册表,共享内存。

.12.如何截取键盘的响应,让所有的‘a’变成‘b’?键盘钩子SetWindowsHookEx13.Apartment在COM中有什么用?为什么要引入?14.存储过程是什么?有什么用?有什么优点?我的理解就是一堆sql的集合,可以建立非常复杂的查询,编译运行,所以运行一次后,以后再运行速度比单独执行SQL快很多15.Template有什么特点?什么时候用?16.谈谈Windows DNA结构的特点和优点。

17、网络编程中设计并发服务器,使用多进程与多线程,请问有什么区别?1,进程:子进程是父进程的复制品。

子进程获得父进程数据空间、堆和栈的复制品。

2,线程:相对与进程而言,线程是一个更加接近与执行体的概念,它可以与同进程的其他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列。

两者都可以提高程序的并发度,提高程序运行效率和响应时间。

线程和进程在使用上各有优缺点:线程执行开销小,但不利于资源管理和保护;而进程正相反。

同时,线程适合于在SMP机器上运行,而进程则可以跨机器迁移。

tatic有什么用途?(请至少说明两种)1) 限制变量的作用域2) 设置变量的存储域引用与指针有什么区别?1) 引用必须被初始化,指针不必。

2) 引用初始化以后不能被改变,指针可以改变所指的对象。

3) 不存在指向空值的引用,但是存在指向空值的指针。

描述实时系统的基本特性在特定时间内完成特定的任务,实时性与可靠性全局变量和局部变量在内存中是否有区别?如果有,是什么区别?全局变量储存在静态数据库,局部变量在堆栈什么是平衡二叉树?左右子树都是平衡二叉树且左右子树的深度差值的绝对值不大于1堆栈溢出一般是由什么原因导致的?没有回收垃圾资源什么函数不能声明为虚函数?constructor冒泡排序算法的时间复杂度是什么?O(n^2)写出float x 与“零值”比较的if语句。

if(x<0.000001&&x>-0.000001)Internet采用哪种网络协议?该协议的主要层次结构?tcp/ip 应用层/传输层/网络层/数据链路层/物理层Internet物理地址和IP地址转换采用什么协议?ARP (Address Resolution Protocol)(地址解析協議)IP地址的编码分为哪俩部分?IP地址由两部分组成,网络号和主机号。

不过是要和“子网掩码”按位与上之后才能区分哪些是网络位哪些是主机位。

用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。

写出C程序。

循环链表,用取余操作做不能做switch()的参数类型是:switch的参数不能为实型。

局部变量能否和全局变量重名?答:能,局部会屏蔽全局。

要用全局变量,需要使用"::"局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。

对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内如何引用一个已经定义过的全局变量?答:extern可以用引用头文件的方式,也可以用extern关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变理,假定你将那个变写错了,那么在编译期间会报错,如果你用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么?答:可以,在不同的C文件中以static形式来声明同名全局变量。

可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值,此时连接不会出错语句for( ;1 ;)有什么问题?它是什么意思?答:和while(1)相同。

do……while和while……do有什么区别?答:前一个循环一遍再判断,后一个判断以后再循环static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。

全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式。

这两者在存储方式上并无不同。

这两者的区别虽在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。

而静态全局变量则限制了其作用域,即只在定义该变量的源文件内有效,在同一源程序的其它源文件中不能使用它。

由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用,因此可以避免在其它源文件中引起错误。

从以上分析可以看出,把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。

把全局变量改变为静态变量后是改变了它的作用域,限制了它的使用范围。

static函数与普通函数作用域不同。

仅在本文件。

只在当前源文件中使用的函数应该说明为内部函数(static),内部函数应该在当前源文件中说明和定义。

对于可在当前源文件以外使用的函数,应该在一个头文件中说明,要使用这些函数的源文件要包含这个头文件static全局变量与普通的全局变量有什么区别:static全局变量只初使化一次,防止在其他文件单元中被引用;static局部变量和普通局部变量有什么区别:static局部变量只被初始化一次,下一次依据上一次结果值;static函数与普通函数有什么区别:static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝程序的局部变量存在于(堆栈)中,全局变量存在于(静态区)中,动态申请数据存在于(堆)中。

设有以下说明和定义:typedef union {long i; int k[5]; char c;} DATE;struct data { int cat; DATE cow; double dog;} too;DATE max;则语句printf("%d",sizeof(struct date)+sizeof(max));的执行结果是:___52____ 答:DATE是一个union, 变量公用空间. 里面最大的变量类型是int[5], 占用20个字节. 所以它的大小是20data是一个struct, 每个变量分开占用空间. 依次为int4 + DATE20 + double8 = 32. 所以结果是20 + 32 = 52.当然...在某些16位编辑器下, int可能是2字节,那么结果是int2 + DATE10 + double8 = 20队列和栈有什么区别?队列先进先出,栈后进先出对于一个频繁使用的短小函数,在C语言中应用什么实现,在C++中应用什么实现?用宏定义,c++用inline直接链接两个信令点的一组链路称作什么?PPP点到点连接接入网用的是什么接口?voip都用了那些协议?软件测试都有那些种类?黑盒:针对系统功能的测试白合:测试函数功能,各函数接口确定模块的功能和模块的接口是在软件设计的那个队段完成的?概要设计阶段1.IP Phone的原理是什么?IPV62.TCP/IP通信建立的过程怎样,端口有什么作用?三次握手,确定是哪个应用程序使用该协议3.1号信令和7号信令有什么区别,我国某前广泛使用的是那一种?4.列举5种以上的电话新业务?什么是预编译何时需要预编译:1、总是使用不经常改动的大型代码体。

2、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。

在这种情况下,可以将所有包含文件预编译为一个预编译头一个32位的机器,该机器的指针是多少位指针是多少位只要看地址总线的位数就行了。

80386以后的机子都是32的数据总线。

所以指针的位数就是4个字节了。

1、写一个“标准”宏,这个宏输入两个参数并返回较小的一个。

.#define Min(X, Y) ((X)>(Y)?(Y):(X))//结尾没有;2、嵌入式系统中经常要用到无限循环,你怎么用C编写死循环。

while(1){}或者for(;;)3、关键字static的作用是什么?定义静态变量4、关键字const有什么含意?表示常量不可以修改的变量。

5、关键字volatile有什么含意?并举出三个不同的例子?提示编译器对象的值可能在编译器未监测到的情况下改变。

int (*s[10])(int) 表示的是什么啊int (*s[10])(int) 函数指针数组,每个指针指向一个int func(int param)的函数。

3.c和c++中的struct有什么不同?c和c++中struct的主要区别是c中的struct不可以含有成员函数,而c++中的struct 可以。

相关文档
最新文档