C语言经典笔试试题

合集下载

C语言笔试题带答案

C语言笔试题带答案

一、选择题(1)~(10)每小题2分,(11)~(50)每小题1分,共60分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。

(1)在数据结构中,从逻辑上可以把数据结构分为_______。

A)动态结构和静态结构B)紧凑结构和非紧凑结构C)线性结构和非线性结构D)内部结构和外部结构答案:C评析:逻辑结构反映数据元素之间的逻辑关系,线性结构表示数据元素之间一对一的关系,非线性结构表示数据元素之间一对多或多对一的关系。

(2)若进栈序列为l,2,3,4,进栈过程中可以出栈,则下列不可能的一个出栈序列是_______。

A)1,4,3,2 B)2,3,4,lC)3,1,4,2 D)3,4, 2,1答案:C评析:栈是一种后进先出表,选项c中,先出栈的是3,说明此时栈内必然有1,2,由于l先于2进栈,所以l不可能在2之前出栈,故选项C这种出栈序列是不可能的。

(3)排序方法中,将整个无序序列分割成若干小的子序列并分别进行插入排序的方法,称为_______。

A)希尔排序B)冒泡排序C)插入排序D)选择排序答案:A评析:希尔排序法的基本思想是:将整个无序序列分割成若干小的子序列分别进行插入排序。

(4)在顺序表(3,6,8,10,12,15,16,18,21,25,30)中,用二分法查找关键码值11,所需的关键码比较次数为_______。

A)2 B)3 C)4 D)5答案:C评析:二分法查找是用关键码与线性表的中间元素比较,然后根据比较结果来判断是结束查找,还是在左边或者右边子表按相同的方法继续查找。

本题中,与ll 比较的关键码分别为15,8,10,12四个。

(5)对于n个结点的单向链表(无表头结点),需要指针单元的个数至少为_______。

A)n-1 B)n C)n+l D)2n答案:C评析:在n个结点的单向链表(无表头结点)中,每个结点都有一个指针单元(即指针域),加上头指针,至少需要n+1个指针单元。

c语言笔试题库

c语言笔试题库

第一章C语言概述一单项选择题1.一个C程序的执行是从( A )。

A、本程序的main函数开始,到main函数结束B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C) 本程序的main函数开始,到本程序文件的最后一个函数结束D) 本程序文件的第一个函数开始,到本程序的main函数结束2.以下叙述正确的是(C )。

A、在C程序中,main函数必须位于程序的最前面B) C程序的每行中只能写一条语句C)C语言本身没有输入输出语句D) 在对一个C 程序进行编译的过程中,可发现注释中的拼写错误3.以下叙述不正确的是(D )。

A、一个C源程序可由一个或多个函数组成B) 一个C源程序必须包含一个main函数C) C程序的基本组成单位是函数D) 在C程序中,注释说明只能位于一条语句的后面4.C语言规定,在一个源程序中,main函数的位置( C )。

A、必须在最开始 B) 必须在系统调用的库函数的后面C) 可以任意 D) 必须在最后5.一个C语言源程序是由(B )。

A、一个主程序和若干子程序组成 B) 函数组成C) 若干过程组成 D) 若干子程序组成二填空题1.C源程序的基本单位是函数。

2.一个C源程序中至少应包括一个main函数。

3.在一个C源程序中,注释部分两侧的分界符分别为/* 和 */。

4.一个函数是由两部分组成的,它们分别是函数首部和函数体。

5.在C语言中,一个函数的函数体一般包括声明部分和执行部分。

6.在每个C语句和数据定义的最后必须有一个;。

7.C语言本身没有输入输出语句。

其输入输出是由函数来完成。

8.程序是指一组能使计算机识别和执行的指令,每一个指令都使计算机能够执行相应的操作。

9.源程序是指用高级语言编写的程序。

C源程序文件的扩展名为.c 。

10.目标程序是指计算机不能识别和执行高级语言程序,只能通过高编译系统将高级语言程序转化为二进制的目标程序。

目标程序文件的扩展名为.obj 。

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语言笔试题目及答案下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。

(1)算法的空间复杂度是指________。

A)算法程序的长度B)算法程序中的指令条数C)算法程序所占的存储空间D)算法执行过程中所需要的存储空间答案:D评析:一个算法的空间复杂度,一般是指执行这个算法所需的内存空间。

一个算法所占用的存储空间包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间。

(2)下列关于栈的叙述中正确的是________。

A)在栈中只能插入数据B)在栈中只能删除数据C)栈是先进先出的线性表D)栈是先进后出的线性表答案:D评析:栈是限定在一端进行插入与删除的线性表。

栈是按照“先进后出”的或“后进先出”的原则组织数据的,因此,栈也被称为“先进后出”表或“后进先出”表。

(3)在深度为5的满二叉树中,叶子结点的个数为________。

A)32 B)31 C)16 D)15答案:C评析:所谓满二叉树是指除最后一层外,每层上的所有结点都有两个子结点。

也就是说,在满二叉树中,每一层上的结点数都达到最大值,即在满二叉树的第K层上有2K-1个结点,且深度为m的满二叉树有2m个结点。

在满二叉树中,最后一层的结点个数就是叶子结点的个数,本题中深度为5,故叶子结点数为25-1=24=16。

(4)对建立良好的程序设计风格,下面描述正确的是________。

A)程序应简单、清晰、可读性好B)符号名的命名要符合语法C)充分考虑程序的执行效率D)程序的注释可有可无答案:A评析:要形成良好的程序设计风格,主要应注重和考虑下述一些因素:符号名的命名应具有一定的实际含义,以便于对程序功能的理解;正确的注释能够帮助读者理解程序;程序编写应优先考虑清晰性,除非对效率有特殊要求,程序编写要做到清晰第一,效率第二。

(5)下面对对象概念描述错误的是________。

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语言笔试考试题及答案一、选择题(每题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)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的作用是什么?这个简单的问题很少有人能回答完全。

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

姓名:班级:一、选择题(根据题目要求可以选择一个或多个答案每小题1分,共计30分)1、结构体是下列哪种数据类型?()A、包括了另一个变量的存储地址B、描述具有相同大小和相同数据类型的数据C、描述在一个组中的不同的数据类型2. #include<stdio.h>#include<conio.h>main(){ int i,x=0;for(i=1;i<10;i=i*2)x++;printf(“%d”,x);}上面C语言程序的输出结果为()A、5B、10C、0D、以上都不对3. 在C语言中,下列哪1种格式可用于scanf()以读入一个十进制整数?( )A、%sB、%lfC、%fD、%d4、以下c 语句执行后,int i, s=0;for (i=0;i<10;i++)s+=i;printf (“%d\n”, i);输出的内容为 ( ).A、0B、9C、10D、115. 在C语言中,要计算一个数(变量i)的开平方,下面代码正确的是()。

A、printf(sqrt(t),”\n Square of %d”, i );B、printf(“\n Square of %d is %d ” , i ,sqrt(i));C、printf(sqrt(i),I,t,”\n square of %d is %d ”);D、printf(I,t,”\n square of %d ”);E、scanf(I, “\n square of %d is %d”,sqrt(i));6. 分支是指处理过程()计算路线进行。

A、可能同时沿着两个或更多的B、可能沿着两个或更多的C 在一个节点同时沿着不同的D 可能沿着一个或更多的7.解决问题所使用的一系列合乎逻辑的、简洁的一系列步骤称为()。

A、方法B、程序设计C、过程D、算法8、在缓冲文件系统中用于读写的函数有()A、fseek()B、fread()C、rewind ()D、fwrite()9.如下是C语言中变量命名规则,请选出错误的选项:( )A、由字母、数字和下划线组成的序列是正确的变量名B、区分大写字母和小写字母C、不区分大写字母和小写字母D、变量名必须以字母或下划线开头。

10.在C语言中(以16位PC机为例),5种基本数据类型的存储空间长度的排顺序为()A、int < char < long int < float < doubleB、char < int < long int <= float < doubleC、char < int < long int < double < floatD、int < char < long int < =double < float11.根据操作的性质进行分类,运算符可分为:( )A、逻辑运算符B、单目运算符C、双目运算符D、算术运算符E、比较运算符12.若有定义int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是( )A. 2.500000B. 3.0C. 3.500000D.以上都不对13.逻辑运算符的优先级()比较运算符A、高于B、等同于C、低于D、不一定高于14. 逻辑运算符的优先级(从高到低)的正确顺序是( )A、&& != ||B、!= && ||C、|| != &&D、!= || &&15.已知字母A的ASCII码为十进制数65,且C2为字符型,则执行语句C2=‟A‟+‟6‟-…3‟后,C2中的值为( )A、编译时此语句会出错B、DC、A6D、以上都不对16. 如下程序的输出结果是:( )# include<stdio.h>void main( ){ char a;for(a=65;a<=77; a+=2;)printf(“ %c\t ”,a); }A.a d g B、 A D G JC 、A C E G I K MD 、A D G17.如下程序的输出结果是:( )# include<stdio.h>void main( ){int m=5;if(m++>5) printf(“%d\n”,m);else printf(“%d\n”, m- -); }A、4B、 5C、 6D、空18. 如下程序的输出结果将显示字符信息”This is a car.”( )次。

# include<stdio.h>void main(){int cnt=100;while(cnt>10){printf(“This is a car.”);cnt/=4;}}A、 1B、 2C、3D、019.关于如下所示程序,哪些选项( )的说法是错误的。

# include<stdio.h>void main( ){int cnt;do{printf(“enter a positive number:”);scanf(“%d”,&cnt);}while(cnt<=0);}A、如果用户输入的是正整数,循环将结束。

B、如果用户输入的是负整数,循环将结束。

C、该程序运行后,将进入死循环。

D、该程序运行后,将不会进入死循环。

20.()是一组有相同类型数据的有序集合,这些数据可用同一个变量名称访问;()表示一组不同类型数据的集合。

()A、指针结构B、数组指针C、结构数组D、数组结构21.读如下程序,请选出正确的选项。

()#include<stdio.h>void main( ){int a[11];int i,j,t;printf(“input 10 number:\n”);for(i=1;i<11;i++)scanf(“%d”,&a[i]);printf(“\n”);for(j=1;j<=9;j++)for(i=1;i<=10-j;i++)if(a[i]>a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;}printf(“the sorted numbers:\n”);for(i=1;i<11;i++)printf(“%d “,a[i]);}A、该程序运行后,先请用户输入10个整数,然后升序排列显示。

B、该程序运行后,先请用户输入10个整数,然后降序排列显示。

C、该程序运行后,先请用户输入10个整数,然后顺序显示。

D、以上都不对。

22.如下程序可显示出字符串信息,程序中画划线部分应填写( )。

#include<stdio.h>void main( ){char c[10]={…I‟,‟‟,‟a‟,‟m‟,‟‟,‟a‟,‟‟,‟b‟,‟o‟,‟y‟};int i;for(i=0;i<10;i++)printf(“_____”,c[i]);printf(“\n”);}A、%dB、%cC、%sD、%a23. 结构成员可通过( )的方式访问。

A、结构变量.成员变量B、成员变量.结构变量C、结构名.成员变量D、结构名.结构变量24.使用( )运算符可以从一个指针变量所指的地址中取数据。

A、?B、*C、&D、@25.在( )方法中,只能传递变量的值;在( )方法中,实际传递的是变量的内存地址。

A、按调用传递B、按原始数据传递C、按地址传递D、按值传递26.使用数学函数时,应该在该源文件中使用:# include<math.h>,请选出不是数学函数的选项( )。

A、 powB、 expC、 sqrtD、 strcmp27.函数的( )使得我们可以向函数传送数值。

A、形参B、实参C、参数D、返回值28.读如下程序,选出对于运行结果说法正确的选项( )。

main(){int n=25,p;p=stu(&n);printf("%d",p);}stu(int *num){return(*num+=5);}A、25B、30C、有错误,不能运行D、以上都不对。

29. 以下程序的运行结果是( )sub(int x,int y,int *z){*z=y-x;}void main(){int a,b,c;sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);printf("%4d,%4d,%4d\n",a,b,c);}A、5,2,3B、-5,-12,-7C、-5,-12,-17D、5,-2,-730. 以下程序有错,错误原因是main(){int *p,i;char *q,ch;p=&i;q=&ch;*p=40;*p=*q;......}A、p和q的类型不一致,不能执行*p=*q;语句B、*p中存放的是地址值,因此不能执行*p=40;语句C、q没有指向具体的存储单元,所以*q没有实际意义D、q虽然指向了具体的存储单元,但该单元中没有确定的值,所以不能执行*p=*q;语句.二、填空题(每空3分,共计24分)1.已知int x= 10 , y = 20 , z = 30 ;执行语句if ( x > y ) z = x ; x = y ; y = z ; 后x , y , z的值分别是 ________。

2.double *p ; sizeof ( p ) = ________。

3.语句int * parr [5]的含义是________。

4.阅读以下程序main(){char *p,*q;char str[]="Hello,World\n";q = p = str;p++;printf(q);printf(p);}运行结果是什么?____________5、嵌入式系统中经常要用到无限循环,你怎么用C编写死循环。

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

7、变量a是一个32位的字数据,用位运算实现将变量a的第24位和25位设为10.请填空。

8、设计一个结构体模板,保存一个月份名、一个3个字母的该月份的缩写、该月份天数以及月份号。

三、简答题(每小题6分共计12分)1、请解释函数的定义,声明和调用的区别。

2、c语言中static关键字起什么作用,请简单叙述其用法。

四、编程题(共4题,1.2.3每题8分,4题10分,共34分)1、编写一个函数,不使用标准库函数,将两个字符串连接起来,即自己编写函数实现strcat()函数的功能。

2、编写一个函数:输入一行字符,分别统计出其中字母、空格、数字和其他字符的个数。

相关文档
最新文档