c和c经典笔试题及答案
- 格式:doc
- 大小:52.50 KB
- 文档页数:8
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经典笔试题及答案集团文件版本号:(M928-T898-M248-WU2669-I2896-DQ586-M1988)C++/C经典笔试题及答案C++/C试题???本试题仅用于考查C++/C程序员的基本编程技能。
内容限于C++/C常用语法,不涉及数据结构、算法以及深奥的语法。
考试成绩能反映出考生的编程质量以及对C++/C的理解程度,但不能反映考生的智力和软件开发能力。
???????笔试时间90分钟。
请考生认真答题,切勿轻视。
一、请填写BOOL , float, 指针变量与“零值”比较的 if 语句。
(10分)提示:这里“零值”可以是0, 0.0 , FALSE或者“空指针”。
例如 int 变量 n 与“零值”比较的 if 语句为:????if ( n == 0 )????if ( n != 0 )1、头文件中的 ifndef/define/endif 干什么用?2、#include??<filename.h>???和??#include??“filename.h” 有什么区别?3、const 有什么用途?(请至少说明两种)4、在C++ 程序中调用被 C编译器编译后的函数,为什么要加 extern “C”声明?5已知strcpy函数的原型是???????char *strcpy(char *strDest, const char *strSrc); ???????其中strDest是目的字符串,strSrc是源字符串。
(1)不调用C++/C的字符串库函数,请编写函数 strcpy(2)strcpy能把strSrc的内容复制到strDest,为什么还要char * 类型的返回值?六、编写类String的构造函数、析构函数和赋值函数(25分)已知类String的原型为:????class String????{??????public:????????String(const char *str = NULL); // 普通构造函数????????String(const String &other);????????// 拷贝构造函数????????~ String(void);?????????????????????// 析构函数????????String & operate =(const String &other);????// 赋值函数??????private:????????char????*m_data;????????????????// 用于保存字符串????};???????请编写String的上述4个函数。
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语言笔试题目及答案一、选择题((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语言笔试考试题及答案一、选择题(每题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++经典笔试题附答案解析1. 用预处理指令#define声明一个常数,用以表明1年中有多少秒(忽略闰年问题)。
答案:#define SECONDS_PER_YEAR(60*60*24*365)UL应该意识到表达式将使一个16位机的整形数溢出,因此要用到长整型符号L,表达式中UL 表示无符号长整型。
2. 写一个“标准”宏MIN,这个宏输入连个参数并返回较小的一个。
答案:#define MIN(A,B) ((A) using namespace std;class A {};class A2 {char d,e;}; struct B{};struct C{ char x,y;};struct D{int x,y;};main(){cout using namespace std;class A1 { public: int a; static int b;A1(); ~A1();}; 4class A2 { public: int a; char c; A2(); ~A2();}; 8class A3 { public: float a; char c; A3(); ~A3();}; 8class A4 { public: float a; int b; char c; A4(); ~A4();}; 12class A5 { public: double d; float a; int b; char c; A5(); ~A5();} 24 int main() { coutx=0来定义x的值,等同于pt.x=0.11. #include using namespace std;Void GetMemory(int *z) { *z=5; }Int main() { int v; GetMemory( cout::= 这表明:(1) 初始化在类体外进行,而前面不加static,以免与一般静态变量或对象相混淆。
c c笔试题及答案C C语言是一种广泛应用于系统开发和嵌入式设备的程序设计语言。
在这篇文章中,我们将为大家提供一些C C笔试题及其答案,帮助大家更好地理解和掌握这门语言。
题目一:下面的代码段有什么问题,如何解决?```c#include <stdio.h>int main(){int num1 = 5;int num2;printf("请输入一个整数:");scanf("%d", &num2);int sum = num1 + num2;printf("两个整数的和为:%d\n", sum);return 0;}```答案一:这段代码有一个问题,即没有对输入的整数进行验证。
当我们输入非整数时,程序将会出现错误。
为了解决这个问题,我们可以使用条件语句来判断输入是否为整数,并进行相应的处理。
以下是修复后的代码:```c#include <stdio.h>int main(){int num1 = 5;int num2;printf("请输入一个整数:");if (scanf("%d", &num2) != 1){printf("输入错误,请重新输入一个整数。
\n");return 1;}int sum = num1 + num2;printf("两个整数的和为:%d\n", sum);return 0;}```题目二:请解释下面代码的输出结果,并给出原因。
```c#include <stdio.h>int main(){int x = 5;int y = x++;printf("x = %d\n", x);printf("y = %d\n", y);return 0;}```答案二:这段代码的输出结果为:```x = 6y = 5```原因是在表达式`int y = x++;`中,先将x的值赋给y,然后再对x进行自增操作。
2010 C、C++笔试题大全,被问的概率几乎100%。
很少有真正精通了C语言编程的学员,一般都有或多或少概念不是完全清楚的问题,特别是一些需要丰富的实战经验才能体会和明白的问题,如字符串,指针,类型转换,定义指向函数的指针类型,这也是导致学习C困难的一个原因。
下面有几个简单测试将能发现你对C语言的掌握情况。
1)int x=35;char str[10];//问:strlen(str)和sizeof(str)的值分别是多少?答:strlen(str) 值不确定,strlen根据'\0'确定字符串是否结束。
sizeof(str)=10 sizeof一个数组为数组长度strcpy(str,""/*共13个字母*/);//问:此时x和strlen(str)的值分别是多少?答:x 为35strcpy(char* dest, const char* src)根据src来复制dest,依照src的'\0'决定复制的长度,而dest必须要提供足够的长度,这里会引起溢出,strlen返回13,但是数组外部的数据已经被破坏strlen的值为13,在VC++环境下,x的值是要改变的(其他编译器下没试,).虽然表面上看来,在程序中并没有修改x的值,但是实际运行的结果是上面的x的值发生了修改,这是因为strcpy以后,把多余的数据拷贝进了str的邻居(int类型的x)中,所以x的数据也就变了.这是一个曾让我刻骨铭心的问题,在我刚出道时遇到这个问题,虽然在朋友的帮助下解决了这个问题,但一直不明白x的值为何变了,只有最后走上培训教师的岗位,才开始梳理自己曾经的困惑,才开始总结以前的经验供学员们借鉴.我觉得这个题目的价值非常之大,它能引起学员对字符串拷贝越界问题的足够重视,并且通过这个问题更能明白字符串的处理是怎么回时,更能明白字符串与字符数组的关系:字符串就是一个字符数组,只是把这个字符数组用在处理串的函数中时,这些函数不考虑数组的长度,只是记住数组的首地址,从首地址开始处理,并在遇到0时结束处理,3)char str[10];str=""; // also can use :memcpy(str, "")//编译能通过吗?答:数组不能赋值,只能初始化。
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经典笔试题及答案第一题:数学题已知一边长为10cm的正方形ABCD,点E在边BC上,且BE=4cm,连接AE交对角线BD于点F。
求△CEF的面积。
解答:首先,连接AD。
根据正方形特性可知,△ABE和△ADF是全等三角形。
因此,AE = AD,所以AE = 10cm。
由AE = AD,并且△ABE和△ADF是全等三角形,可以推出∠EAF = ∠EAB,∠BFA = ∠EBD(共顶角相等)。
因此,△BFA和△EBD是全等三角形。
根据△EBD的知识可得,BE = BD - ED = BD - AE = BD - 10cm。
由于BE = 4cm,所以 BD = 14cm。
同理,根据△BFA的知识可得,BF = AB - AF = AB - AE = AB - 10cm。
由于AB = 10cm,所以BF = 0cm。
即F与B重合,因此,△CEF退化成一条线段EF。
线段EF的长度等于三角形△CEF的面积。
根据△CEF的面积公式,面积 = 底 ×高 / 2 = EF × CF / 2,所以面积 = EF × CF / 2 = EF × BE / 2 = EF × 4cm / 2 = 2EF(单位:cm²)。
综上所述,△CEF的面积为2EF平方厘米。
第二题:英语题Choose the word that best completes the sentence:Tom likes to ________ his friends for a cup of coffee after work.A. meetingB. meetsC. meetD. metAnswer: C. meetExplanation:The sentence states that Tom likes to do something after work. The verb "likes" is followed by the verb "to meet," which is the correct form when used with the pronoun "friends." Therefore, the correct answer is C. meet.第三题:物理题A car of mass 1200kg is traveling at a speed of 20m/s. Find its kinetic energy.Solution:The formula for kinetic energy (K.E.) is K.E. = (1/2)mv², where m is the mass of the object and v is its velocity.Given:Mass (m) = 1200kgVelocity (v) = 20m/sSubstituting the values into the formula:K.E. = (1/2)(1200kg)(20m/s)²= (1/2)(1200kg)(400m²/s²)= 240,000kg*m²/s²Therefore, the kinetic energy of the car is 240,000kg*m²/s².第四题:化学题Balance the following chemical equation:C₄H₁₀ + O₂ → CO₂ + H₂OSolution:To balance the equation, we need to ensure that the number of atoms of each element is equal on both sides of the equation.Starting with carbon (C), we have 4 carbon atoms on the left side and 1 carbon atom on the right side. To balance the carbon atoms, we need to put a coefficient of 4 in front of CO₂.C₄H₁₀ + O₂ → 4CO₂ + H₂ONext, looking at hydrogen (H), we have 10 hydrogen atoms on the left side and 2 hydrogen atoms on the right side. To balance the hydrogen atoms, we need to put a coefficient of 5 in front of H₂O.C₄H₁₀ + O₂ → 4CO₂ + 5H₂OFinally, looking at oxygen (O), we have 2 oxygen atoms on the left side and 14 oxygen atoms on the right side. To balance the oxygen atoms, we need to put a coefficient of 7/2 (or 3.5) in front of O₂.2 C₄H₁₀ + 3.5O₂ → 4CO₂ + 5H₂OTherefore, the balanced chemical equation is 2 C₄H₁₀ + 3.5O₂ →4CO₂ + 5H₂O.第五题:生物题Fill in the blanks with the correct terms:Photosynthesis is the process by which plants, algae, and some bacteria convert ________ energy into ________ energy.Solution:Photosynthesis is the process by which plants, algae, and some bacteria convert sunlight energy into chemical energy.Therefore, the correct terms to fill in the blanks are sunlight energy and chemical energy.总结:本文分别介绍了数学题、英语题、物理题、化学题和生物题的经典笔试题及答案。
c 笔试题及答案详解C笔试题及答案详解一、判断题1. c答案:正确解析:根据题目给出的信息,对于C语言开发环境搭建的目的是为了方便进行C语言的学习和开发工作,因此判断为正确。
2. c答案:错误解析:C语言是一种面向过程的程序设计语言,不具备垃圾回收机制,需要手动管理内存。
3. c答案:错误解析:C语言的注释分为单行注释和多行注释两种形式,而不是只有单行注释。
4. c答案:正确解析:C语言中的表达式可以包含常量、变量、运算符和函数调用等。
5. c答案:错误解析:C语言中的数据类型包括基本数据类型(如整型、字符型、浮点型等)和构造数据类型(如结构体、枚举等)。
二、选择题1. c答案:B解析:对于sizeof算符,它的作用是获取变量或类型的字节大小。
sizeof(char)返回值为1,因为char类型占用一个字节。
2. c答案:C解析:C语言中的switch语句只能用于排斥某个值的情况。
对于范围的判断需要借助if语句完成。
3. c答案:D解析:在C语言中,数组是一种顺序存储的数据结构,可以通过下标来访问数组中的元素。
4. c答案:A解析:对于逻辑运算符&&,它的左右两个操作数都为真时结果才为真,否则结果为假。
5. c答案:C解析:在C语言中,结构体是一种自定义的数据类型,可以包含多个不同类型的成员。
三、编程题代码如下:```c#include <stdio.h>void printStars(int n) {for (int i = 1; i <= n; i++) {for (int j = 1; j <= i; j++) {printf("* ");}printf("\n");}}int main() {int n;printf("请输入要打印的行数:");scanf("%d", &n);printStars(n);return 0;}```解析:上述代码实现了一个功能,根据用户输入的行数,打印相应行数的星号图案。
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 C是一种通用的编程语言,广泛用于系统软件和应用程序开发。
在程序员面试和招聘过程中,C C笔试题是常见的一部分。
本文将详细解析几道经典的C C笔试题及其答案,帮助读者对C C语言的使用和理解有更深入的认识。
题目一:请编写一个C C程序,将一个整数数组中的元素按照从小到大的顺序进行排序。
答案详解:```c#include <stdio.h>int main() {int arr[] = {50, 20, 40, 10, 30};int n = sizeof(arr)/sizeof(arr[0]);int i, j, temp;for (i = 0; i < n-1; i++) {for (j = 0; j < n-i-1; j++) {if (arr[j] > arr[j+1]) {temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;}}}printf("排序后的数组:");for(i = 0; i < n; i++) {printf("%d ", arr[i]);}return 0;}```题目二:请编写一个C C程序,计算并输出斐波那契数列的前20个数字。
答案详解:```c#include <stdio.h>int main() {int n = 20;int fib[n];int i;fib[0] = 0;fib[1] = 1;for(i = 2; i < n; i++) {fib[i] = fib[i-1] + fib[i-2];}printf("斐波那契数列的前20个数字:");for(i = 0; i < n; i++) {printf("%d ", fib[i]);}return 0;}```题目三:请编写一个C C程序,将一个字符串中的所有小写字母转换为大写字母。
C语言常见笔试题
以下是一些常见的C语言笔试题,这些题目涵盖了基本的语法、数据类型、流程控制等方面。
请注意,这只是一小部分可能出现在C 语言笔试中的题目,实际的笔试可能会根据岗位的不同涵盖更广泛的主题。
基本语法:
编写一个程序,输出"Hello,World!"。
变量与数据类型:
声明一个整数变量并初始化为10,输出该变量的值。
运算符:
编写一个程序,计算并输出两个整数的和、差、积、商和余数。
条件语句:
编写一个程序,输入一个整数,判断它是否是正数、负数还是零,并输出相应的提示信息。
循环结构:
使用循环结构输出1到10的所有偶数。
数组:
声明一个整数数组,存储5个成绩,并计算平均值。
字符串处理:
编写一个程序,输入一个字符串,然后输出字符串的长度。
函数:
编写一个函数,接受两个整数参数,返回它们的和。
指针:
声明一个整数变量,然后声明一个指向该变量的指针,并通过指针修改变量的值。
结构体:
声明一个表示学生的结构体,包括学生的姓名、学号和成绩,并输出这些信息。
文件操作:
编写一个程序,打开一个文件,读取文件中的内容并输出到屏幕上。
这些问题涵盖了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语言笔试题(答案)笔试题一、填空题(每个空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经典笔试题及答案C语言和C++语言是计算机科学中非常常见的编程语言,常被用于算法实现、系统开发以及游戏开发等方面。
下面是一些经典的C和C++笔试题及其答案,希望能对大家的学习和面试有所帮助。
题目一:交换两个变量的值请编写一个C函数,能够交换两个整型变量的值,并在调用函数之后打印交换后的结果。
```c#include <stdio.h>void swap(int* a, int* b) {int temp;temp = *a;*a = *b;*b = temp;}int main() {int x = 10;int y = 20;printf("交换前:x = %d, y = %d\n", x, y);swap(&x, &y);printf("交换后:x = %d, y = %d\n", x, y);return 0;}```题目二:查找数组中的最大值请编写一个C函数,接收一个整型数组和该数组的长度作为参数,返回数组中的最大值。
```c#include <stdio.h>int findMax(int arr[], int n) {int max = arr[0];for (int i = 1; i < n; i++) {if (arr[i] > max) {max = arr[i];}}return max;}int main() {int arr[] = {1, 3, 5, 2, 4};int n = sizeof(arr) / sizeof(arr[0]);int maxValue = findMax(arr, n);printf("数组中的最大值为: %d\n", maxValue);return 0;}```题目三:字符串反转请编写一个C函数,接收一个字符串作为参数,将其反转并返回。
c的笔试题及答案1. 选择题:(1)以下哪个不是C语言的关键字?A. intB. floatC. doubleD. case(2)以下哪个运算符用于判断两个值是否相等?A. ==B. !=C. >D. &&(3)在C语言中,以下哪个循环结构不会先判断条件再执行循环体?A. while循环B. do-while循环C. for循环(4)以下哪个函数用于输出字符到屏幕上?A. printf()B. scanf()C. getchar()D. putchar()2. 填空题:(1)C语言中,用于声明整型变量的关键字是______。
(2)在C语言中,条件运算符的格式为______。
(3)以下是一个典型的for循环语句:for (i = 0; i < 10; i++) {printf("%d ", i);}那么上述代码的输出结果是______。
3. 简答题:(1)请简要解释C语言的数据类型。
包括基本数据类型和派生数据类型的定义和特点。
(2)什么是函数?请简要解释函数的定义和调用,并给出一个简单的函数示例。
(3)请简要介绍一下C语言中的条件语句if-else的用法,并给出一个简单的if-else语句示例。
答案:1. (1)D;(2)A;(3)C;(4)A2. (1)int;(2)exp1 ? exp2 : exp3;(3)0 1 2 3 4 5 6 7 8 93. (1)基本数据类型:包括整型、浮点型、字符型和空类型,其定义不依赖其他数据类型;派生数据类型:包括数组、结构体和指针类型,其定义依赖于基本数据类型或其他派生数据类型。
基本数据类型具有固定的存储空间和取值范围,而派生数据类型可以根据需要组合和扩展基本数据类型。
(2)函数是一段完成特定任务的程序代码。
函数的定义包括函数头和函数体,函数头包括函数返回类型、函数名和参数列表,函数体包括函数执行的代码。
函数的调用是通过函数名和传递给函数的参数来调用的。
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经典笔试题及答案
C++/C 试题
本试题仅用于考查C++/C 程序员的基本编程技能。
内容限于C++/C 常用语法,不涉及数据结构、算法以及深奥的语法。
考试成绩能反映出考生的编程质量以及对C++/C 的理解程度,但不能反映考生的智力和软件开发能力。
笔试时间90分钟。
请考生认真答题,切勿轻视。
一、请填写BOOL , float, 指针变量 与“零值”比较的 if 语句。
(10分) 提示:这里“零值”可以是0, 0.0 , FALSE 或者“空指针”。
例如 int 变量 n 与“零值”比较的 if 语句为: if ( n == 0 ) if ( n != 0 )
1、头文件中的 ifndef/define/endif 干什么用?
2、#include <filename.h> 和 #include “filename.h” 有什么区别?
3、const 有什么用途?(请至少说明两种)
4、在C++ 程序中调用被 C 编译器编译后的函数,为什么要加
extern “C”声明? 5
已知strcpy函数的原型是
char *strcpy(char *strDest, const char *strSrc);
其中strDest是目的字符串,strSrc是源字符串。
(1)不调用C++/C的字符串库函数,请编写函数strcpy
(2)strcpy能把strSrc的内容复制到strDest,为什么还要char * 类型的返回值?
六、编写类String的构造函数、析构函数和赋值函数(25分)
已知类String的原型为:
class String
{
public:
String(const char *str = NULL); // 普通构造函数
String(const String &other); // 拷贝构造函数
~ String(void); // 析构函数
String & operate =(const String &other); // 赋值函数 private:
char *m_data; // 用于保存字符串
};
请编写String的上述4个函数。
C++/C试题的答案与评分标准
1、头文件中的ifndef/define/endif 干什么用?(5分)
答:防止该头文件被重复引用。
2、#include <filename.h> 和 #include “filename.h” 有什么区别?(5分)
答:对于#include <filename.h> ,编译器从标准库路径开始搜索filename.h
对于#include “filename.h” ,编译器从用户的工作路径开始搜索filename.h 3、const 有什么用途?(请至少说明两种)(5分)
答:(1)可以定义const 常量
(2)const可以修饰函数的参数、返回值,甚至函数的定义体。
被const修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。
4、在C++ 程序中调用被C编译器编译后的函数,为什么要加extern “C”?(5分)
答:C++语言支持函数重载,C语言不支持函数重载。
函数被C++编译后在库中的名字与C语言的不同。
假设某个函数的原型为:void foo(int x, int y);
该函数被C编译器编译后在库中的名字为_foo,而C++编译器则会产生像_foo_int_int之类的名字。
C++提供了C连接交换指定符号extern“C”来解决名字匹配问题。
5
已知strcpy函数的原型是
char *strcpy(char *strDest, const char *strSrc);
其中strDest是目的字符串,strSrc是源字符串。
(1)不调用C++/C的字符串库函数,请编写函数strcpy char *strcpy(char *strDest, const char *strSrc);
{
assert((strDest!=NULL) && (strSrc !=NULL)); // 2分 char *address = strDest; // 2分
while( (*strDest++ = * strSr c++) != ‘\0’ ) // 2分
NULL ;
return address ; // 2分
}
(2)strcpy能把strSrc的内容复制到strDest,为什么还要char * 类型的返回值?答:为了实现链式表达式。
// 2分
例如int length = strlen( strcpy( strDest, “hello world”) );
六、编写类String的构造函数、析构函数和赋值函数(25分)
已知类String的原型为:
class String
{
public:
String(const char *str = NULL); // 普通构造函数
String(const String &other); // 拷贝构造函数
~ String(void); // 析构函数
String & operate =(const String &other); // 赋值函数
private:
char *m_data; // 用于保存字符串
};
请编写String的上述4个函数。
标准答案:
// String的析构函数
String::~String(void) // 3分
{
delete [] m_data;
// 由于m_data是内部数据类型,也可以写成delete m_data;
}
// String的普通构造函数
String::String(const char *str) // 6分
{
if(str==NULL)
{
m_data = new char[1]; // 若能加NULL 判断则更好
*m_data = ‘\0’;
}
else
{
int length = strlen(str);
m_data = new char[length+1]; // 若能加NULL 判断则更好
strcpy(m_data, str);
}
}
// 拷贝构造函数
String::String(const String &other) // 3分
{
int length = strlen(other.m_data);
m_data = new char[length+1]; // 若能加NULL 判断则更好
strcpy(m_data, other.m_data);
}
// 赋值函数
String & String::operate =(const String &other) // 13分
{
// (1) 检查自赋值 // 4分
if(this == &other)
return *this;
// (2) 释放原有的内存资源 // 3分
delete [] m_data;
// (3)分配新的内存资源,并复制内容// 3分
int length = strlen(other.m_data);
m_data = new char[length+1]; // 若能加NULL 判断则更好 strcpy(m_data, other.m_data);
// (4)返回本对象的引用// 3分
return *this;
}。