c语言笔试题答案)

合集下载

c笔试题及答案

c笔试题及答案

c笔试题及答案一、选择题(每题2分,共10分)1. 下列哪个选项是C语言中合法的标识符?A. 2variableB. variable2C. intD. variable$2答案:B2. C语言中,哪个关键字用于定义一个函数?A. varB. defineC. functionD. void答案:D3. 在C语言中,以下哪个选项表示逻辑与运算?A. &&B. ||C. andD. or答案:A4. 在C语言中,哪个函数用于计算字符串的长度?A. strlen()B. length()C. size()D. count()答案:A5. 下面哪个选项是C语言中的整型数据类型?A. intB. floatC. charD. All of the above答案:D二、填空题(每题2分,共10分)1. 在C语言中,一个程序的执行从________函数开始。

答案:main2. 如果一个变量的值在程序执行过程中不会改变,那么它应该被声明为________。

答案:const3. C语言中,________运算符用于将一个值赋给变量。

答案:=4. 在C语言中,________关键字用于定义一个结构体。

答案:struct5. C语言中,________函数用于将一个字符串复制到另一个字符串。

答案:strcpy三、简答题(每题5分,共20分)1. 请简述C语言中数组的定义方式。

答案:在C语言中,数组的定义方式如下:类型名数组名[数组大小];例如,定义一个包含10个整数的数组:int numbers[10];2. 解释C语言中指针的概念。

答案:在C语言中,指针是一个变量,其存储的是另一个变量的内存地址。

通过指针,程序可以直接访问和操作内存中的数据。

3. 请描述C语言中函数的原型声明。

答案:函数原型声明在C语言中用于告知编译器函数的名称、返回类型、参数类型和数量,但不提供函数的实现。

函数原型声明的一般形式为:返回类型函数名(参数类型参数名, ...);4. 举例说明C语言中如何实现文件的读写。

c语言考试笔试题及答案详解

c语言考试笔试题及答案详解

c语言考试笔试题及答案详解一、选择题(每题2分,共20分)1. C语言中用于定义一个结构体的关键字是:A. structB. unionC. enumD. typedef答案:A2. 下列关于C语言中数组的描述,错误的是:A. 数组必须在编译时确定大小B. 数组可以是多维的C. 数组的元素必须是同一类型D. 数组可以动态分配答案:D3. 在C语言中,哪个函数用于将字符串复制到另一个字符串?A. strcpyB. strcatC. strncpyD. strcmp答案:A4. 下列哪个选项不是C语言中的运算符?A. %B. &&C. ::D. ||答案:C5. C语言中,用于定义一个函数的关键字是:A. functionB. defC. voidD. int答案:C6. 下列哪个选项不是C语言中的控制语句?A. ifB. switchC. caseD. for答案:C7. 在C语言中,用于声明一个指针的语法是:A. int *p;B. int p*;C. int *p = 0;D. int *p = p;答案:A8. C语言中,用于定义一个枚举类型的关键字是:A. enumB. typedefC. unionD. struct答案:A9. 下列关于C语言中指针的描述,错误的是:A. 指针可以指向任何类型的数据B. 指针可以作为函数的参数C. 指针可以作为函数的返回值D. 指针可以存储函数的地址答案:D10. C语言中,用于定义一个联合体的关键字是:A. structB. unionC. enumD. typedef答案:B二、填空题(每题3分,共15分)1. 在C语言中,使用________关键字可以定义一个变量的存储类型为静态存储。

答案:static2. C语言中,使用________运算符可以计算两个整数的和。

答案:+3. 在C语言中,使用________关键字可以定义一个函数的返回类型为无返回值。

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语言笔试考试题及答案一、选择题(每题2分,共20分)1. 在C语言中,以下哪个选项是正确的整型常量?A. 0x12B. 0.123C. 1.2E3D. 1.2e3答案:A2. C语言中,以下哪个是合法的标识符?A. 2variableB. variable2C. variable-2D. variable$2答案:B3. 在C语言中,以下哪个是正确的字符串字面量?A. "Hello, World!"B. 'Hello, World!'C. "Hello, World!"'D. 'Hello, World!"答案:A4. C语言中,以下哪个是合法的数组声明?A. int a[5] = {1, 2, 3, 4, 5};B. int a[] = {1, 2, 3, 4, 5};C. int a = {1, 2, 3, 4, 5};D. int a[5] = {1, 2, 3};答案:A5. 在C语言中,以下哪个是正确的函数声明?A. int add(int x, int y);B. int add(int x; int y);C. int add(int x, int);D. int add(int, int);答案:A6. C语言中,以下哪个是正确的结构体声明?A. struct Point { int x, y; };B. struct { int x, y; } Point;C. struct Point { int x; int y; };D. struct { int x, y; };答案:C7. 在C语言中,以下哪个是正确的指针声明?A. int *p;B. int *p[];C. int *p[5];D. int (*p)[5];答案:A8. C语言中,以下哪个是正确的枚举声明?A. enum Color { Red, Green, Blue };B. enum Color: Red, Green, Blue;C. enum { Red, Green, Blue };D. enum Color { 1, 2, 3 };答案:A9. 在C语言中,以下哪个是正确的宏定义?A. #define MAX 100B. #define MAX(100)C. #define MAX 100D. #define MAX = 100答案:A10. C语言中,以下哪个是正确的条件语句?A. if (x > 0) { ... } else { ... }B. if x > 0 { ... } else { ... }C. if (x > 0) then { ... } else { ... }D. if (x > 0) { ... } else if { ... }答案:A二、填空题(每题2分,共20分)1. C语言中,用于定义一个整型变量的关键字是______。

c语言笔试考试题及答案

c语言笔试考试题及答案

c语言笔试考试题及答案1. 以下哪个选项是C语言中的关键字?A) intB) IntegerC) stringD) float答案:A2. C语言中,用于定义一个整型变量的关键字是什么?A) varB) integerC) intD) float答案:C3. 在C语言中,以下哪个函数用于将整数转换为字符串?A) sprintfB) atoiC) itoaD) printf答案:C4. 下列哪个选项不是C语言中的运算符?A) %B) &&C) ==D) ++答案:B5. 在C语言中,以下哪个语句用于结束一个循环?A) breakB) continueC) returnD) exit答案:A6. 以下哪个函数用于获取当前时间?A) time()B) localtime()C) mktime()D) strftime()答案:A7. C语言中,以下哪个选项是正确的注释格式?A) /* This is a comment */B) // This is a commentC) //* This is a commentD) # This is a comment答案:A8. 在C语言中,以下哪个选项是正确的数组声明?A) int arr[5] = {1, 2, 3, 4, 5};B) int arr[] = {1, 2, 3, 4, 5};C) int arr[5] = {1, 2, 3};D) int arr = {1, 2, 3, 4, 5};答案:A9. 在C语言中,以下哪个选项是正确的字符串声明?A) char str[] = "Hello";B) char str = "Hello";C) char str[] = {"Hello"};D) char str = {"Hello"};答案:A10. 在C语言中,以下哪个函数用于将字符串转换为浮点数?A) atofB) atoiC) itoaD) sprintf答案:A。

c语言笔试考试题及答案

c语言笔试考试题及答案

c语言笔试考试题及答案C语言笔试考试题及答案一、选择题(每题2分,共20分)1. 下列哪个选项是C语言中的关键字?A. intB. floatC. doubleD. string答案:A2. C语言中,int类型变量的默认初始值是多少?A. 0B. 1C. -1D. 随机值答案:A3. 以下哪个是正确的C语言函数声明?A. int function(int a, int b)B. void function(int a, int b)C. int function(int a, int b) {}D. int function(int a, int b) {return a + b;}答案:B4. 在C语言中,哪个运算符用于求两个数的余数?A. /B. %C. *D. -答案:B5. 下列哪个是C语言中正确的数组声明?A. int array[10];B. int array = 10;C. int array(10);D. int [10] array;答案:A6. C语言中,哪个语句用于结束程序的执行?A. break;B. continue;C. return;D. exit;答案:C7. 在C语言中,哪个函数用于计算两个数的和?A. sum(int a, int b)B. add(int a, int b)C. plus(int a, int b)D. None of the above答案:D8. 在C语言中,哪个关键字用于定义一个函数?A. functionB. defC. methodD. void答案:A9. 下列哪个选项是C语言中的控制流语句?A. ifB. switchC. caseD. All of the above答案:D10. 在C语言中,哪个语句用于实现循环?A. forB. whileC. do-whileD. All of the above答案:D二、填空题(每空2分,共20分)1. C语言中,____ 用于定义一个字符常量。

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语言笔试题及答案一、选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 下列关于C语言函数的描述,正确的是:A. 函数必须有返回值B. 函数可以没有返回值C. 函数必须有参数D. 函数不能有参数答案:B3. 在C语言中,以下哪个运算符用于比较两个值是否不相等?A. ==B. !=C. <=D. >=答案:B4. 下列关于数组的描述,错误的是:A. 数组的元素必须是同一数据类型B. 数组可以是多维的C. 数组的大小在编译时确定D. 数组的大小在运行时确定答案:D5. 在C语言中,以下哪个关键字用于定义一个指针?A. intB. charC. floatD. *答案:D6. 下列关于C语言中变量作用域的描述,正确的是:A. 局部变量只能在函数内部使用B. 全局变量只能在函数外部使用C. 局部变量可以在函数外部使用D. 全局变量可以在函数内部使用答案:A7. 在C语言中,以下哪个关键字用于定义一个枚举?A. enumB. structC. unionD. typedef答案:A8. 下列关于C语言中指针的描述,错误的是:A. 指针可以存储地址B. 指针可以存储值C. 指针可以作为函数的参数D. 指针不能作为函数的返回值答案:D9. 在C语言中,以下哪个关键字用于定义一个联合体?A. structB. unionC. enumD. typedef答案:B10. 下列关于C语言中循环的描述,正确的是:A. for循环不能嵌套B. while循环不能嵌套C. do-while循环不能嵌套D. 以上都是错误的答案:D二、填空题(每题3分,共15分)1. 在C语言中,定义一个整型变量的关键字是________。

答案:int2. 如果要定义一个指向整型变量的指针,应该使用________。

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

笔试题一、填空题(每个空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在字节对齐分别为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,软件系统不会对人为原因造成的错误进行处理。

它有利于(A BCD) A:缺陷及早暴露,加快定位进程;B:明确表示函数接口或算法逻辑的校验关系,增强软件代码的可读性;C:去除不必要的容错处理,简化代码处理流程,降低软件处理复杂度;D:强化编程接口之间的契约,增强软件的可维护性;7)对于循环体的执行效率,下述说法正确的是(ABCD )A:循环体内工作量最小化B:在多重循环中,应将最忙的循环放在最内层C:尽量减少循环的嵌套层次D:避免在循环体内做无谓的判断语句,将循环语句置于判读语句的代码块之中8)设数组a[5]={10,20,30,40,50};已知指针p指向a[1];则表达式*++p的值是(A) A.20C.30D.319)有以下程序段, 执行后,mul的值为(B)int a[ ]={1,3,5,7,9};int mul, *data, x;mul=1;data=&a[1];for(x=0; x<3; x++)mul *= *(data+x);A.15B.105C.315D.94510)有以下程序段,执行后的结果为(D)int list[ ]={6,7,8,9,10};int * p;p=list;*(p+2)=10;printf(”%d, %d\n”,*p,*(p+2));A.8, 10B.6, 8C.7, 9D.6, 1011)以下语句不能正确赋值的是(A)A.char s1[10]; s1=”China”;B.char s2[ ]={ ’C’,’h’,’i’,’n’,’a’};C.char s3[20]=”China”;D.char *s=”China”;12)C语言中,定义PI为一个符号常量,正确的是(A)A.#define PI 3.14B.define PI 3.14C.#include PI 3.14D.include PI 3.1413)有以下程序,该程序输出的结果为(B)#define N 3#define M N+2#define NUM 2*M+1main(){int i;i=NUM;printf(”%d\n”,i);}A.11 、B.9C.7D.514)有以下程序,程序运行后的输出结果是(D )#include <string.h>#include <stdio.h>main(){ char *p=“abcde\0fghjik\0”;printf(“%d\n” , strlen(p)); }A.12B.15C.6D.515)为了比较两个字符串s1和s2是否相等,应当使用( C )A.if(s1=s2)B.if(s1==s2)C.if(strcmp(s1, s2)==0)D.if(strcmp(&s1, &s2)==0)16)设有如下结构定义:struct student{ int num;char name[20];char sex;int age;char addr[30];} stud;若用printf(“%s\n”,…)访问该结构中name值的正确方法是(D )A.stud->nameB.&C.stud.&nameD.17)想对一个文本文件的尾部追加写入,应当在fopen语句中使用的文件操作方式指示符号为(D )A.wB.rC.wbD.a三、指出下列程序的错误(每题4分,共20分)1).如下程序用于输出"Welcome Home"。

请指出其中的错误:(4分)void Test(void){char pcArray[12];strcpy(pcArray,"Welcome Home");printf("%s!", pcArray);return;}答案:数组越界。

2).如下程序用于把"blue"字符串返回,请指出其中的错误:(4分)char *GetBLUE(void){char* pcColor ;char* pcNewColor;pcColor = "blue";pcNewColor = (char*)malloc(strlen(pColor));if(NULL == pcNewColor){return NULL;}strcpy(pcNewColor, pcColor);return pcNewColor;}答案:申请内存空间不足,字符串结尾还有'\0'。

3).下面程序期望输出str = hello world,请指出其中的错误:(4分)char * GetStr(char *p){p = "hello world";return p;}void main(){char *str = NULL;if(NULL != GetStr(str)){printf("\r\n str = %s",str);}return;}答案:无法返回字符串,参数使用错误。

4).请指出下面程序错误的地方:(4分)#define BUFFER_SIZE 256void Test(void){char *str = NULL;str = (char *)malloc(BUFFER_SIZE);if(NULL == str){return;}strcpy(str, "hello");free(str);if(NULL != str){strcpy(str, "world");printf(str);}return;}答案:引用了已经释放的内存。

5).请指出下面程序的错误:(4分)void GetMemory(char **ppcChar, int iLength){if(NULL == ppcChar){return;}*ppcChar = (char *)malloc(iLength);return;}void Test(void){char *szStr = NULL;GetMemory(&szStr, 100);if(NULL != szStr){strcpy(szStr, "hello");printf(szStr);}return;}答案:没有释放内存。

四、简答题(每题4分,共8分)1)写宏定义MAX,求出两个数中的较大者。

(4分)答案: #defined MAX(A,B) ((A)>=(B)?(A):(B) )2) 画出同下面多叉树等价的二叉树,并作说明。

(4分)答案如下:(采用树的孩子兄弟法将树转换成二叉树)五、编程题(共10分)1)给一个单链表,删除某一节点(要求:先找到是否有这个节点,然后再删除,要能保证程序运行正确)(10分)参考解法如下:include<iostream.h>#include<malloc.h>#include<stdio.h>#include<conio.h>typedef struct linkqueue1{int data;struct linkqueue1 *next;}linkqueue1,linklist;linklist *creat(void) //建立链表{linklist *head;int n=1,len;linklist *p1,*p2;cout<<"input number of records:"<<endl;cin>>len;head=p1=p2=(linklist *)malloc(sizeof(linklist));cout<<"input records:"<<endl;cin>>p1->data;head->next=NULL;while(n++<=len-1){p1=(linklist *)malloc(sizeof(linklist));cin>>p1->data;p2->next=p1;p2=p1;p2->next=NULL;}return (head);}void outlink(linklist *head){linklist *p;p=head;while(p){cout<<p->data<<" ";p=p->next;}}int bianli(linklist *head, int Number) //遍历链表,返回1说明有要删除的元素,反之。

相关文档
最新文档