计算机语言C模拟考试及答案

合集下载

c语言初级考试题及答案

c语言初级考试题及答案

c语言初级考试题及答案1. 以下哪个选项是C语言中的关键字?A. intB. floatC. stringD. integer答案:A2. C语言中,用于定义一个整型变量的关键字是什么?A. varB. intC. integerD. float答案:B3. 在C语言中,以下哪个运算符用于比较两个值是否相等?A. ==B. !=C. =D. <=答案:A4. 在C语言中,如何定义一个名为“sum”的函数,该函数接收两个整型参数并返回它们的和?A. int sum(int a, int b) { return a + b; }B. int sum(int a, int b) { return a - b; }C. int sum(float a, float b) { return a + b; }D. float sum(int a, int b) { return a + b; }答案:A5. C语言中,以下哪个选项是正确的注释方式?A. // This is a single line commentB. /* This is a single line comment */C. //* This is a single line commentD. /* This is a single line comment */答案:A6. 在C语言中,以下哪个选项是正确的字符串字面量表示方法?A. "Hello, World!"B. 'Hello, World!'C. "Hello, World"D. 'Hello, World'答案:A7. 以下哪个选项是C语言中的正确数组声明?A. int numbers[5] = {1, 2, 3, 4, 5};B. int numbers[] = {1, 2, 3, 4, 5};C. int numbers[5] = {1, 2, 3};D. int numbers = {1, 2, 3, 4, 5};答案:A8. 在C语言中,以下哪个语句用于在循环中终止循环?A. break;B. continue;C. exit;D. return;答案:A9. C语言中,以下哪个函数用于将字符串连接到另一个字符串?A. strcatB. strcpyC. sprintfD. printf答案:A10. 在C语言中,以下哪个函数用于将一个整数转换为字符串?A. atoiB. itoaC. sprintfD. printf答案:B。

计算机二级《C语言》模拟试题及答案

计算机二级《C语言》模拟试题及答案

计算机二级《C语言》模拟试题及答案计算机二级《C语言》模拟试题及答案1、以下语句的输出结果是( )。

int a=-1,b=4,k;k=(+ +a<0)&&!(b - -<=0);printf("%d,%d,%d\n",k,a,b);A. 1,0,4B. 1,0,3C. 0,0,3D. 0,0,42、下列程序的输出结果是( )。

char *p1="abcd", *p2="ABCD", str[50]="xyz";strcpy(str+2,strcat(p1+2,p2+1));printf("%s",str);A. xyabcABB. abcABzC. ABabczD. xycdBCD3、执行下面的程序后,a的值是( )。

#define SQR(X) X*Xmain( ){ int a=10,k=2,m=1;a/=SQR(k+m)/SQR(k+m);printf("%d\n",a); }A. 10B. 1C. 9D. 04、设A为存放(短)整型的一维数组,如果A的首地址为P,那么A中第i 个元素的地址为( )。

A.P+i*2B. P+(i-1)*2来源:考试大C. P+(i-1)D. P+i5、下列程序执行后输出的结果是( )。

int d=1;fun (int p){ int d=5;d + =p + +;printf("%d,",d); }main( ){ int a=3;fun(a);d + = a + +;printf("%d\n",d); }A. 8, 4B. 9, 6C. 9, 4D. 8, 56、表达式:10!=9的值是( )。

A. trueB. 非零值C. 0D. 17、若有说明: int i,j=7, *p=&i;, 则与i=j; 等价的语句是( )。

全国计算机二级C语言模拟测试【含详细解析】 (10)

全国计算机二级C语言模拟测试【含详细解析】 (10)

1.下列关于栈叙述正确的是( )。

A. 栈顶元素最先能被删除B. 栈顶元素最后才能被删除C. 栈底元素永远不能被删除D. 栈底元素最先被删除正确答案:A你的答案:解析:【解析】栈是先进后出的数据结构,所以栈顶元素最后入栈却最先被删除。

栈底元素最先入栈却最后被删除。

所以选择A)。

2.下列叙述中正确的是( )。

A. 在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化B. 在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化C. 在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化D. 以上说法均不正确正确答案:C你的答案:解析:【解析】栈是先进后出的数据结构,在整个过程中,栈底指针不变,入栈与出栈操作均由栈顶指针的变化来操作,所以选择C)。

3.某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)( )。

A. 3B. 4C. 6D. 7正确答案:D你的答案:解析:【解析】根据二叉树的基本性质3:在任意一棵二叉树中,多为0的叶子结点总比度为2的结点多一个,所以本题中度为2的结点为1-1=0个,所以可以知道本题目中的二叉树的每一个结点都有一个分支,所以共7个结点共7层,即度为7。

4.软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。

下面属于应用软件的是( )。

A. 学生成绩管理系统B. C语言编译程序C. UNIX 操作系统D. 数据库管理系统正确答案:A你的答案:解析:【解析】软件按功能可以分为:应用软件、系统软件、支撑软件。

操作系统、编译程序、汇编程序、网络软件、数据库管理系统都属于系统软件。

所以B)、C)、D)都是系统软件,只有A)是应用软件。

5.结构化程序所要求的基本结构不包括( )。

A. 顺序结构B. GOTO跳转C. 选择(分支)结构D. 重复(循环)结构正确答案:B你的答案:解析:【解析】1966年Boehm和Jacopini证明了程序设计语言仅仅使用顺序、选择和重复三种基本控制结构就足以表达出各种其他形式结构的程序设计方法。

全国计算机二级C语言模拟测试【含详细解析】 (15)

全国计算机二级C语言模拟测试【含详细解析】 (15)

1.设循环队列为Q(1:m),其初始状态为front=rear=m。

经过一系列入队与退队运算后,front=20,rear=15。

现要在该循环队列中寻找最小值的元素,最坏情况下需要比较的次数为A. 5B. 6C. m-5D. m-6正确答案:D你的答案:解析:【解析】循环队列是队列的一种顺序存储结构,用队尾指针rear指向队列中的队尾元素,用排头指针指向排头元素的前一个位置,因此,从排头指针front指向的后一个位置直到队尾指针rear指向的位置之间所有的元素均为队列中的元素,队列初始状态为front=rear=m,当front=20,rear=15时,队列中有m-20+15=m-5个元素,比较次数为m-6次,D选项正确。

2.某二叉树的前序序列为ABCDEFG,中序序列为DCBAEFG,则该二叉树的后序序列为A. EFGDCBAB. DCBEFGAC. BCDGFEAD. DCBGFEA正确答案:D你的答案:解析:【解析】二叉树遍历可以分为3种:前序遍历(访问根节点在访问左子树和访问右子树之前)、中序遍历(访问根节点在访问左子树和访问右子树两者之间)、后序遍历(访问根节点在访问左子树和访问右子树之后)。

二叉树的前序序列为ABCDEFG,A为根节点。

中序序列为DCBAEFG,可知DCB为左子树节点,EFG为右子树节点。

同理B为C父节点,C 为D父节点,且CD均为B的同侧子树节点。

同理E为F根节点,F为G根节点,且FG 为E同侧子树节点。

二叉树的后序序列为DCBGFEA,D选项正确。

3.下列叙述中正确的是A. 有两个指针域的链表一定是二叉树的存储结构B. 有多个指针域的链表一定是非线性结构C. 有多个指针域的链表有可能是线性结构D. 只有一个根结点的数据结构一定是线性结构正确答案:C你的答案:解析:【解析】一个非空的数据结构如果满足以下两个条件:有且只有一个根节点;每一个节点最多有一个前件,也最多有一个后件,称为线性结构,称为线性表。

c语言模拟考试题及答案

c语言模拟考试题及答案

c语言模拟考试题及答案一、选择题(每题2分,共20分)1. 下列哪个选项是C语言中的合法标识符?A. 2variableB. variable2C. variable-2D. variable$2答案:B2. C语言中,哪个关键字用于声明一个变量?A. defineB. varC. letD. int答案:D3. 下列哪个选项是C语言中的整型常量?A. 0x1AB. 1.23C. 1e2D. "123"答案:A4. 在C语言中,哪个函数用于计算字符串的长度?A. strlen()B. length()C. size()D. lengthof()5. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. !D. A和B答案:D6. C语言中,哪个关键字用于声明一个函数?A. functionB. defC. defineD. void答案:D7. 在C语言中,哪个函数用于将字符串复制到另一个字符串?A. strcpy()B. copy()C. duplicate()D. copystr()答案:A8. 下列哪个选项是C语言中的浮点型常量?A. 3.14B. 3.14e2C. 3.14E2D. A和C答案:D9. 在C语言中,哪个关键字用于声明一个数组?B. listC. tableD. int[]答案:D10. 下列哪个选项是C语言中的位运算符?A. &B. |C. ^D. A和B答案:D二、填空题(每题2分,共20分)1. 在C语言中,使用________关键字可以定义一个宏。

答案:#define2. C语言中,使用________函数可以将一个浮点数转换为字符串。

答案:sprintf3. 在C语言中,使用________关键字可以跳过当前循环的剩余部分,继续下一次循环。

答案:continue4. C语言中,使用________关键字可以立即退出循环。

c语言考试题及答案

c语言考试题及答案

c语言考试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言的描述中,错误的是:A. C语言是一种高级语言B. C语言可以直接被计算机执行C. C语言具有结构化的特点D. C语言具有跨平台的特性答案:B2. C语言中,用于定义一个整型变量的关键字是:A. intB. floatC. doubleD. char答案:A3. 在C语言中,以下哪个运算符用于取模运算?A. %B. /C. *D. -答案:A4. 下列关于数组的描述中,正确的是:A. 数组必须在程序开始时初始化B. 数组的元素可以是不同的数据类型C. 数组的索引从1开始D. 数组的声明必须指定数组的大小答案:D5. 在C语言中,以下哪个关键字用于定义一个函数?A. intB. voidC. functionD. define答案:B6. C语言中,用于表示逻辑“与”操作的运算符是:A. &&B. ||C. !D. &答案:A7. 下列哪个选项是C语言中合法的注释?A. // 这是一个注释B. /* 这是一个注释 */C. // 这是一个注释/* 这是一个注释 */D. /* 这是一个注释 */答案:A8. C语言中,用于定义一个空指针的值是:A. NULLB. 0C. falseD. none答案:A9. 下列关于指针的描述中,错误的是:A. 指针可以存储变量的地址B. 指针可以存储函数的地址C. 指针可以存储数组的索引D. 指针可以存储指针的地址答案:C10. 在C语言中,用于定义一个字符型指针的声明是:A. char *ptr;B. int *ptr;C. float *ptr;D. double *ptr;答案:A二、填空题(每题2分,共20分)1. 在C语言中,定义一个整型数组的语法是:______ int array[10];。

答案:int2. 如果一个变量的值是10,那么表达式sizeof(&var)的结果是:______。

C语言程序设计模拟试题一(含答案)

C语言程序设计模拟试题一(含答案)

C语言程序设计模拟试题一(含答案)1、下列述叙中正确的是A) 显示器和打印机都是输出设备B) 显示器只能显示字符C) 通常的彩色显示器都有7种颜色D) 打印机只能打印字符和表格2、微型计算机中运算器的主要功能是进行A) 算术运算B) 逻辑运算C) 算术和逻辑运算D) 初等函数运算3、是DOS系统的最外层模块,通常称之为A) 引导程序B) 输入输出系统C) 命令处理系统D) 文件管理系统4、电子邮件是A) 网络信息检索服务B) 通过Web网页发布的公告信息C) 通过网络实时交互的信息传递方式D) 一种利用网络交换信息的非交互式服务5、和十进制数225相等的二进制数是A) 11101110 B) 11111110C) 10000000 D) 111111116、下列叙述中正确的是A) 指令由操作数和操作码两部分组成\B) 常用参数xxMB表示计算机的速度C) 计算机的一个字长总是等于两个字节D) 计算机语言是完成某一任务的指令集7、计算机的内存储器比外存储器A) 价格便宜B) 存储容量大C) 读写速度快D) 读写速度慢8、设当前盘为C盘,执行DOS命令"COPY B:\A.TXT PRN"之后,结果是A) B盘上的A.TXT文件被复制到C盘的PRN文件B) 屏幕上显示B盘上的A.TXT文件内容C) B盘上的A.TXT文件内容在打印机上输出D) B盘上的A.TXT文件被复制到B盘上的PRN文件9、要将当前盘当前目录下的两个文件X1.TXT和B1.TXT连接起来之后存入B盘当前目录下并且命名为Z.TXT,无论B 盘当前目录是什么,完成这件任务可以使用的命令是A) COPY A:X1.TXT+C:B1.TXT Z.TXTB) COPY X1.TXT+C:\\WS\\B1.TXT B:\\Z.TXTC) COPY A:X1.TXT+C:\\WS\\B1.TXTD) COPY X1.TXT+B1.TXT B:Z.TXT10、下列四组DOS命令中,功能等价的一组是A) COPY A:*.* B:与DISKCOPY A: B:B) COPY ABC.TXT+XYZ.TXT 与TYPE XYZ.TXT>>ABC.TXTC) COPY ABC.TXT+XYZ.TXT与COPY XYZ.TXT+ABC.TXTD) TYPE *.FOR>CON与COPY *.FOR CON11、设当前目录为D:\BB,现要把D:\AA目录下首字符是A的文本文件全部删除,应该使用命令A) DEL A*.TXT B) DEL \\AA\\A.TXTC) DEL \\AA\\A*.TXT D) DEL \\AA\\A?.TXT12、在Windows中,启动应用程序的正确方法是A) 用鼠标指向该应用程序图标B) 将该应用程序窗口最小化成图标C) 将该应用程序窗口还原D) 用鼠标双击该应用程序图标13、在Windows中,终止应用程序执行的正确方法是A) 将该应用程序窗口最小化成图标B) 用鼠标双击应用程序窗口右上角的还原按钮C) 用鼠标双击应用程序窗口中的标题栏D) 用鼠标双击应用程序窗口左上角的控制菜单框14、在微机系统中,对输入输出设备进行管理的基本程序模块(BIOS)存放在A) RAM中B) ROM中C) 硬盘中D) 寄存器中15、使计算机病毒传播范围最广的媒介是A) 硬磁盘B) 软磁盘C) 内部存储器D) 互联网16、设有int x=11; 则表达式(x++ * 1/3) 的值是A) 3 B) 4C) 11 D) 1217、下列程序的输出结果是main(){ double d=3.2; int x,y;x=1.2; y=(x+3.8)/5.0;printf("%d \n", d*y);}A) 3 B) 3.2C) 0 D) 3.0718、下列程序执行后的输出结果是(小数点后只写一位)main(){ double d; float f; ling l; int i;i=f=1=d=20/3;printf("%d %ld %f %f \n", i,l,f,d);}A) 6 6 6.0 6.0 B) 6 6 6.7 6.7C) 6 6 6.0 6.7 D) 6 6 6.7 6.019、下列变量定义中合法的是A) short _a=1-.le-1; B) double b=1+5e2.5;C) long do=0xfdaL; D) float 2_and=1-e-3;20、设int x=1, y=1; 表达式(!x||y--)的值是A) 0 B) 1C) 2 D) -121. 与y=(x>0?1:x<0?-1:0);的功能相同的if语句是A) if (x>0) y=1;else if(x<0)y=-1;else y=0;B) if(x)if(x>0)y=1;else if(x<0)y=-1;else y=0;C) y=-1if(x)if(x>0)y=1;else if(x==0)y=0;else y=-1;D) y=0;if(x>=0)if(x>0)y=1;else y=-1;22. 以下循环体的执行次数是main(){ int i,j;for(i=0,j=1; i<=j+1; i+=2, j--)printf("%d \n",i);}A) 3 B) 2C) 1 D) 023. 以下叙述正确的是A) do-while语句构成的循环不能用其它语句构成的循环来代替B) do-while语句构成的循环只能用break语句退出C) 用do-while语句构成的循环,在while后的表达式为非零时结束循环D) 用do-while语句构成的循环,在while后的表达式为零时结束循环24. 下列程序执行后的输出结果是main(){ int x='f'; printf("%c \n",'A'+(x-'a'+1)); }A) G B) HC) I D) J25. 执行下面的程序段后,变量k中的值为int k=3, s[2];s[0]=k; k=s[1]*10;A) 不定值B) 33C) 30 D) 1026. 若已定义:int a[ ]={0,1,2,3,4,5,6,7,8,9}, *p=a,i; 其中0≤i≤9, 则对a数组元素不正确的引用上A} a[p-a] B} *(&a[i])C} p[i] D} a[10]27、下列程序执行后的输出结果是void func(int *a,int b[]){ b[0]=*a+6; }main(){ int a,b[5];a=0; b[0]=3;func(&a,b); printf("%d \n,b[0]);}A) 6 B) 7C) 8 D) 928、下列程序的运行结果是#include <stdio.h>main(){ int a=2,c=5;printf("a=%d,b=%d\n",a,c); }A) a=%2,b=%5 B) a=2,b=5C) a=d, b=d D) a=%d,b=%d29、下列程序执行后的输出结果是main(){ int a[3][3], *p,i;p=&a[0][0];for(i=p; i<9; i++) p[i]=i+1;printf("%d \n",a[1][2]);}A) 3 B) 6C) 9 D) 随机数30、设有数组定义: char array [ ]="China"; 则数组array所占的空间为A) 4个字节B) 5个字节C) 6个字节D) 7个字节31、下列程序的输出结果是int b=2;int func(int *a){ b += *a; return(b);}main(){ int a=2, res=2;res += func(&a);printf("%d \n",res);}A) 4 B) 6C) 8 D) 1032、在以下四组中,每组有两个分别运算的函数,运算结果相同的是main(){ int i, j, m=0, n=0;for(i=p; i<2; i++)for(j=0; j<2; j++)if(j>=i) m=1; n++;printf("%d \n",n);}A) 4 B) 2C) 2 D) 033、下列程序的输出结果是struct abc{ int a, b, c; };main(){ struct abc s[2]={{1,2,3},{4,5,6}}; int t;t=s[0],a+s[1],b;printf("%d \n",t);}A) 5 B) 6C) 7 D) 834、设int b=2;表达式(b>>2)/(b>>1)的值是A) 0 B) 2C) 4 D) 835、在C程序中,可把整型数以二进制形式存放到文件中的函数是A) fprintf函数B) fread函数C) fwrite函数D) fputc函数36、下列程序执行后的输出结果是main(){ char x=0xFFFF; printf("%d \n",x--); } A) -32767 B) FFFEC) -1 D) -3276837、若有定义: float w;int a, b;则合法的switch语句是A) switch(w){ case 1.0: printf("*\\n");case 2.0: printf("**\\n");}B) switch(a);{ case 1 printf("*\\n");case 2 printf("**\\n");}C) switch(b){ case 1: printf("*\\n");default: printf("\\n");case 1+2: printf("**\\n");}D) switch(a+b);{ case 1: printf("*\\n");case 2: printf("**\\n");default: printf("\\n");}38、以下程序段的执行结果是int a, y;a=10; y=0;do{ a+=2; y+=a;printf("a=%d y=%d\n",a,y);if(y>20) break;{ while(a=14);A} a=12 y=12a=14 y=16a=16 y=20a=18 y=24B} a=12 y=12a=16 y=28C} a=12 y=12D} a=12 y=12a=14 y=26a=14 y=4439、若有以下调用语句,则不正确的fun函数的首部是main(){ …int a[50],n;…fun(n, &a[9]);…A} void fun(int m, int x[]) B} void fun(int s, int h[41])C} void fun(int p, int *s) D} void fun(int n, int a)40、语句printf("a\bre\'hi\'y\\\bou\n");的输出结果是(说明:'\b'是退格符)A) a\\bre\\'hi\\'y\\\\\\bou B) a\\bre\\'hi\\'y\\bouC) re'hi'you D) abre'hi'y\\bou41、请选出正确的程序段A) int *p;scanf("%d",p);…B) int *s, k;*s=100;…C) int *s, k;char *p, c;s=&k;p=&c;*p='a';…D) int *s, k;char *p, e;s=&k;p=&c;s=p;*s=1;42、已知指针p的指向如下图所示,则执行语句*--p;后*p的值是A) 30 B) 20C) 19 D) 2943、设已有定义:char *st="how are you";下列程序段中正确的是A) char a[11], *p; strcpy(p=a+1,&st[4]);B) char a[11]; strcpy(++a, st);C) char a[11];strcpy(a, st);D) char a[], *p;strcpy(p=&a[1],st+2);44、下列程序执行后的输出结果是mai(){ char arr[2][4];strcpy(arr,"you"); strcpy(arr[1],"me");arr[0][3]='&';printf("%s \n",arr);}A) you&ne B) youC) me D) err45、下列程序执行后的输出结果是void func1(int i);void func2(int i);char st[]="hello,friend!";void func1(int i){ printf("%c",st[i]);if(i<3){i+=2;func2(i);}}void func2(int i){ printf("%c",st[i]);if(i<3){i+=2;func1(i);}}main(){ int i=0; func1(i); printf("\n");}A) hello B) helC) hlo D) hlm46、假定下列程序的可执行文件名为prg.exe,则在该程序所在的子目录下输入命令行: prg hello good<回车>后,程序的输出结果是main()int argc, char *argv[]){int i;if(argc<-0)return;for(i=1;i<argc;i++)printf("%c", *argv[i]);}A) hello good B) hgC) hel D) hellogood47、下列程序执行后的输出结果是#define MA(x) x*(x-1)main(){ int a=1,b=2;printf("%d \n",MA(1+a+b));}A) 6 B) 8C) 10 D) 1248、变量a所占内存字节数是union U{ char st[4];int i;long l;};struct A{ int c;union U u;}a;A) 4 B) 5C) 6 D) 849、执行下列程序时输入:123<空格>456<空格>789<回车>,输出结果是main(){char s[100];int c, i;scanf("%c",&c);scanf("%d",&i);scanf("%s",s);printf("%c,%d,%s \n",c,i,s);}A) 123,456,789 B) 1,456,789C) 1,23,456,789 D) 1,23,45650、执行下列程序时输入:123<空格>456<空格>789<回车>,输出结果是main(){char s[100];int c, i;scanf("%c",&c);scanf("%d",&i);scanf("%s",s);printf("%c,%d,%s \n",c,i,s); }A) 123,456,789 B) 1,456,789 C) 1,23,456,789 D) 1,23,456答案:ACCDD ACCDBCDDBD ACAABACDAA DABBCBABDA CDBCCCBABC BBCDD。

计算机C语言考试试题带答案

计算机C语言考试试题带答案

计算机C语言考试试题带答案1). 关于C语言的变量,以下叙述中错误的是( )A.所谓变量是指在程序运行过程中其值可以被改变的量B.变量所占的存储单元地址可以随时改变C.程序中用到的所有变量都必须先定义后才能使用D.由三条下划线构成的符号名是合法的变量名正确答案:B答案解析:变量是指在程序运行过程中其值可以改变的值,一个变量实质上是代表了内存中的某个存储单元。

在程序中对某个变量的操作实际上就是对这个存储单元的操作,程序运行期间,这个分配的存储单元不会改变,但是其值可以变化。

变量命名要符合标识符的规定,其中下划线是标识符的组成字符。

程序中所有变量都必须先定义后使用。

2). 当变量c的值不为2、4、6时,值也为″真″的表达式是( )A.(c==2)||(c==4)||(c==6)B.(c>=2 && c<=6)&& !(c%2)C.(c>=2 && c<=6)&&(c%2!=1)D.(c>=2 && c<=6) || (c!=3) || (c!=5)正确答案:D答案解析:逻辑或运算中,只要有一项为真,表达式的值就为真,故选项D中c的值不为2、4、6时,那么表达式(c>=2 && c<=6)以及(c!=3)、(c!=5)必有一个成立,表达式的值也为真。

3). 在C语言中,函数返回值的类型最终取决于A.函数定义时在函数首部所说明的函数类型B.return语句中表达式值的类型C.调用函数时主调函数所传递的实参类型D.函数定义时形参的类型正确答案:A答案解析:在C语言中,应当在定义函数时指定函数值的类型,凡不加类型说明的函数,一律按整型处理。

在定义函数时,对函数值说明的类型一般应该和return语句中的表达式类型一致。

如果函数值的类型和return语句中的表达式类型不一致,则以函数类型为主,即函数类型决定返回值的类型。

计算机二级《C语言》模拟试题及答案3篇

计算机二级《C语言》模拟试题及答案3篇

计算机二级《C语言》模拟试题及答案第一篇:C语言基础知识1. C语言的发明人是谁?简要介绍一下他的背景。

2. int型变量的取值范围是多少?unsigned int呢?3. 请问下面这段代码输出的结果是什么?char str1[] = "hello";char str2[] = "world";strcat(str1, str2);printf("%s", str1);4. 以下哪些数据类型可以用来存储浮点数?A. floatB. doubleC. long doubleD. char5. 下列代码的输出结果是什么?int a = 1;long b = 2;float c = 3.0;printf("%ld\n", a + b + c);答案:1. C语言的发明人是丹尼斯·里奇(Dennis Ritchie)。

他于1941年出生在美国,是贝尔实验室研究员和计算机科学家。

在20世纪70年代,他和肯·汤普逊(Ken Thompson)合作,发明了UNIX操作系统和C语言。

C语言是一种高级计算机程序语言,在操作系统、编译器、数据库、游戏等领域被广泛使用。

丹尼斯·里奇因发明了C语言,被誉为“计算机编程之父”。

2. int型变量的取值范围是-2147483648到2147483647,unsigned int的取值范围是0到4294967295。

3. 输出结果为“helloworld”。

strcat是C语言的字符串拼接函数,将两个字符串连接成一个字符串。

在拼接之前,需要保证第一个字符串的数组足够大,以容纳两个字符串的内容。

如果第一个字符串不够大,程序会出现内存溢出等问题。

4. A、B、C三个数据类型可以用来存储浮点数。

5. 输出结果为“6”。

在printf函数中,%ld表示输出长整型数据,而c是一个float型变量。

c语言计算机试题及答案

c语言计算机试题及答案

c语言计算机试题及答案1. 单项选择题(1) 下列哪个选项是C语言中合法的变量名?A. 2variableB. variable2C. variable-2D. variable_2答案:D(2) C语言中,以下哪个关键字用于定义函数?A. classB. functionC. defD. void答案:D(3) 在C语言中,用于定义字符串的字符数组的声明方式是?A. int str[10];B. char str[10] = "Hello";C. string str = "Hello";D. char str[] = "Hello";答案:B2. 多项选择题(1) 下列哪些选项是C语言中合法的整数常量?A. 012B. 0x1AC. 10LD. 1.0答案:A, B, C(2) 在C语言中,以下哪些运算符用于比较操作?A. ==B. !=C. <=D. %答案:A, B, C3. 填空题(1) 在C语言中,用于定义一个整型数组的语句是____。

答案:int array_name[size];(2) C语言中,用于循环结构的关键字是____。

答案:for, while, do-while4. 简答题(1) 请简述C语言中指针的概念。

答案:指针是一个变量,其值为另一个变量的地址。

通过指针,程序可以直接访问和操作内存地址。

(2) 解释C语言中结构体的作用。

答案:结构体是一种用户自定义的数据类型,允许将不同的数据类型组合成一个单一的数据结构,以便于数据的组织和管理。

5. 编程题(1) 编写一个C语言程序,实现将一个整数数组逆序输出。

答案:```c#include <stdio.h>int main() {int arr[] = {1, 2, 3, 4, 5};int n = sizeof(arr) / sizeof(arr[0]); for(int i = n - 1; i >= 0; i--) {printf("%d ", arr[i]);}return 0;}```。

c初级考试试题及答案

c初级考试试题及答案

c初级考试试题及答案一、选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 下列哪个选项是C语言中合法的数组声明?A. int arr[5] = {1, 2, 3};B. int arr[] = {1, 2, 3};C. int arr[5] = {1, 2};D. int arr[3] = {1, 2, 3, 4};答案:B3. 在C语言中,以下哪个运算符用于执行按位与操作?A. &&B. ||C. &D. %答案:C4. 下列哪个函数用于将字符串复制到另一个字符串?A. strcpyB. strcatC. strcmpD. strlen答案:A5. 在C语言中,以下哪个关键字用于定义一个函数?A. functionB. defC. funcD. void答案:D6. 下列哪个选项表示C语言中的无限循环?A. for(;;)B. while(1)C. do{...}while(0)D. all of the above答案:D7. 在C语言中,以下哪个关键字用于定义一个枚举?A. enumB. structC. unionD. typedef答案:A8. 下列哪个选项是C语言中合法的函数声明?A. int myFunc(int x, int y);B. int myFunc(int, int);C. int myFunc(x, y);D. int myFunc(int x; int y);答案:B9. 在C语言中,以下哪个运算符用于执行取模操作?A. %B. /C. *D. -答案:A10. 下列哪个函数用于将字符串连接到另一个字符串?A. strcatB. strcpyC. strcmpD. strlen答案:A二、填空题(每题2分,共20分)1. 在C语言中,用于定义一个全局变量的关键字是________。

计算机c语言程序设计考试题及答案

计算机c语言程序设计考试题及答案

计算机c语言程序设计考试题及答案一、选择题1. 下列选项中,哪一个是C语言的关键字?a) mainb) inputc) ifd) print答案:c) if2. C语言中用于定义整型变量的关键字是:a) intb) charc) floatd) double答案:a) int3. 在C语言中,以下字符常量的定义方式错误的是:a) 'A'b) '\n'c) 'AB'd) '\t'答案:c) 'AB'4. 下面哪个运算符优先级最低?a) +b) =c) *d) /答案:b) =5. 在C语言中,执行循环操作的语句是:a) forb) whilec) ifd) switch答案:b) while二、填空题1. 在C语言中,输出字符常量的函数是_______。

答案:printf2. 以下是定义数组的正确方式:int numbers[10];答案:int numbers[10];3. 在C语言中,用于判断条件是否成立的关键字是_______。

答案:if4. 以下是C语言中声明一个指针变量的方式:int *ptr;答案:int *ptr;5. 在C语言中,用于输入整型变量的函数是_______。

答案:scanf三、编程题请编写一个C语言程序,计算输入的两个整数相加的结果并输出。

```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入第一个整数:");scanf("%d", &num1);printf("请输入第二个整数:");scanf("%d", &num2);sum = num1 + num2;printf("两个整数的和为:%d\n", sum);return 0;}```四、解答题1. 请解释C语言中的指针概念以及指针与变量的关系。

大学计算机C语言期末模拟考试三

大学计算机C语言期末模拟考试三

大学计算机C语言期末模拟考试考题类型:单选题 总分:70.0 共55题[不包含随机题]1. (本题分值:1.0)C语言的基本单位是A.函数B.源程序C.语句D.程序行参考答案:A所属章节:C语言概述考题难度:1考题序号:2命题教师:北京化工大学 信息科学与技术学院 夏涛2. (本题分值:1.0)在C程序中,main()函数的位置是A.必须作为第一个函数;B.必须作为最后一个函数;C.可以任意;D.必须放在它所调用的函数之后;参考答案:C所属章节:C语言概述考题难度:1考题序号:6命题教师:北京化工大学 信息科学与技术学院 夏涛3. (本题分值:1.0)以下不正确的C语言标识符是A.intB.a_1_2C.ab1exeD._x参考答案:A所属章节:C语言概述考题难度:1考题序号:201命题教师:北京化工大学 信息科学与技术学院 夏涛4. (本题分值:1.0)以下叙述中正确的是A.C语言程序中注释部分可以出现在程序中任意合适的地方B.花括号“{”和“}”只能作为函数体的定界符C.构成C语言程序的基本单位是函数,所有函数名都可以由用户命名D.分号是C语言语句之间的分隔符,不是语句的一部分参考答案:A所属章节:C语言概述考题难度:1考题序号:1912命题教师:长沙理工大学 计算机与通信工程学院 左利芳5. (本题分值:1.0)一个C程序的执行是从A.本程序的main 函数开始,到main函数结束B.本程序文件中的第一个函数开始,到本程序文件的最后一个函数结束C.本程序的main 函数开始,到本程序文件的最后一个函数结束D.本程序文件的第一个函数开始,到本程序main函数结束参考答案:A所属章节:C语言概述考题难度:1考题序号:1982命题教师:长沙理工大学 计算机与通信工程学院 左利芳6. (本题分值:1.0)C语言中最简单的数据类型包括A.整型、实型、逻辑型B.整型、实型、字符型C.整型、字符型、逻辑型D.整型、实型、逻辑型、字符型参考答案:B所属章节:数据类型、运算符与表达式考题难度:1考题序号:1312命题教师:北京化工大学 信息科学与技术学院 夏涛7. (本题分值:1.0)以下选项中正确的定义语句是A.double a;b;B.double a=b=7;C.double a=7,b=7;D.double,a,b;参考答案:C所属章节:数据类型、运算符与表达式考题难度:1考题序号:1512命题教师:北京化工大学 信息科学与技术学院 夏涛8. (本题分值:1.0)下列不正确的转义字符是A.'\\B.'\"'C.'\074'D.'\0'参考答案:A所属章节:数据类型、运算符与表达式考题难度:1考题序号:1170命题教师:北京化工大学 信息科学与技术学院 夏涛9. (本题分值:1.0)在C语言中,有表达式 x=abs(8-10), 则x的值为( )A.-2B.2C.18D.80参考答案:B所属章节:数据类型、运算符与表达式考题难度:1考题序号:1605命题教师:湖南人文科技学院 计算机科学技术系 朱素英10. (本题分值:1.0)设有说明语句:char a=’\72’;则变量aA.包含1个字符B.包含2个字符C.包含3个字符D.说明不合法参考答案:A所属章节:数据类型、运算符与表达式考题难度:1考题序号:995命题教师:北京化工大学 信息科学与技术学院 夏涛11. (本题分值:2.0)设以下变量均为int类型,则值不等于7的表达式是( )A.(x=y=6,x+y,x+1)B.(x=6,x+1,y=6,x+y)C.(x=y=6,x+y,y+1)D.(y=6,y+1,x=y,x+1)参考答案:B所属章节:数据类型、运算符与表达式考题难度:2考题序号:280命题教师:北京化工大学 信息科学与技术学院 夏涛12. (本题分值:2.0)已知字母A的ascii码值为十进制65,且c2为字符型,则执行语句c2=’a’+’6’-‘3’;后,c2中的值是( )A.dB.68C.cD.不确定的值参考答案:A所属章节:数据类型、运算符与表达式考题难度:2考题序号:286命题教师:北京化工大学 信息科学与技术学院 夏涛13. (本题分值:2.0)设x为int型变量,则执行以下语句后,x的值为( )。

全国计算机等级考试二级C语言模拟试题及答案

全国计算机等级考试二级C语言模拟试题及答案

全国计算机等级考试二级C语言模拟试题及答案(一) 一、选择题(1)栈和队列的共同特点是A)都是先进先出B)都是先进后出C)只允许在端点处插入和删除元素D)没有共同点正确答案: C(2)已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是A)acbedB)decabC)deabcD)cedba正确答案: D(3)链表不具有的特点是A)不必事先估计存储空间B)可随机访问任一元素C)插入删除不需要移动元素D)所需空间与线性表长度成正比正确答案: B(4)结构化程序设计的3种结构是A)顺序结构、选择结构、转移结构B)分支结构、等价结构、循环结构C)多分支结构、赋值结构、等价结构D)顺序结构、选择结构、循环结构正确答案: D(5)为了提高测试的效率,应该A)随机选取测试数据B)取一切可能的输入数据作为测试数据C)在完成编码以后制定软件的测试计划D)集中对付那些错误群集的程序正确答案: D(6)算法的时间复杂度是指A)执行算法程序所需要的时间B)算法程序的长度C)算法执行过程中所需要的基本运算次数D)算法程序中的指令条数正确答案: C(7)软件生命周期中所花费用最多的阶段是A)详细设计B)软件编码C)软件测试D)软件维护正确答案: D(8)数据库管理系统DBMS中用来定义模式、内模式和外模式的语言为A)CB)BasicC)DDLD)DML正确答案: C(9)下列有关数据库的描述,正确的是A)数据库是一个DBF文件B)数据库是一个关系C)数据库是一个结构化的数据集合D)数据库是一组文件正确答案: C(10)下列有关数据库的描述,正确的是A)数据处理是将信息转化为数据的过程B)数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变C)关系中的每一列称为元组,一个元组就是一个字段D)如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字正确答案: D(11)以下叙述中正确的是A)C语言比其他语言高级B)C语言可以不用编译就能被计算机识别执行C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D)C语言出现的最晚,具有其他语言的一切优点正确答案: C(12)C语言中用于结构化程序设计的3种基本结构是A)顺序结构、选择结构、循环结构B)if,switch,breakC)for,while,do-whileD)if,for,continue正确答案: A(13)C语言中最简单的数据类型包括A)整型、实型、逻辑型B)整型、实型、字符型C)整型、字符型、逻辑型D)字符型、实型、逻辑型正确答案: B(14)若变量已正确定义并赋值,以下符合C语言语法的表达式是A)a:=b+1B)a=b=c+2C)int %3D)a=a+7=c+b正确答案: B(15)下列可用于C语言用户标识符的一组是A)void, define, WORDB)a3_b3, _123,CarC)For, -abc, IF CaseD)2a, DO, sizeof正确答案: B(16)C语言中运算对象必须是整型的运算符是A)%=B)/C)=D)<=正确答案: A(17)若变量a,i已正确定义,且i已正确赋值,合法的语句是A)a= =1B)++i;C)a=a++=5;D)a=int(i);正确答案: B(18)已知int t=0;while (t=1){...}则以下叙述正确的是A)循环控制表达式的值为0B)循环控制表达式的值为1C)循环控制表达式不合法D)以上说法都不对正确答案: B(19)若变量已正确说明为float型,要通过语句scanf("%f%f%f",&a,&b,&c);给a赋予,b赋予,c赋予,下列不正确的输入形式是A)10<回车>22<回车>33<回车>B),,<回车>C)<回车>22.033.0<回车>D)10 22<回车>33<回车>正确答案: B(20)有如下程序:main(){int x=1,a=0,b=0;switch(x){case 0: b++;case 1: a++;case 2: a++;b++;}printf("a=%d,b=%d\n",a,b);} 该程序的输出结果是A)a=2,b=1B)a=1,b=1C)a=1,b=0D)a=2,b=2正确答案: A(21)有以下程序main(){int i=1,j=1,k=2;if((j++||k++)&&i++)printf("%d,%d,%d\n",i,j,k); }执行后输出结果是A)1,1,2B)2,2,1C)2,2,2D)2,2,3正确答案: C(22)有如下程序main(){float x=,y;if(x<)y=;else if(x<)y=x;else y=;printf("%f\n",y);}该程序的输出结果是A)B)0.250000C)D)正确答案: C(23)有如下程序:main(){int n=9;while(n>6){n--; printf("%d",n);}}该程序的输出结果是A)987B)876C)8765D)9876正确答案: B(24)在下列选项中,没有构成死循环的是A)int i=100;while(1){i=i%100+1;if(i>100)break;}B)for(;;);C)int k=10000;do{k++;}while(k>10000);D)int s=36;while(s)--s;正确答案: D(25)设int x=1,y=1;表达式(!x||y--)的值是A)0B)1C)2D)-1正确答案: B(26)若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是A)函数调用可以作为独立的语句存在B)函数调用可以作为一个函数的实参C)函数调用可以出现在表达式中D)函数调用可以作为一个函数的形参正确答案: D(27)有以下程序float fun(int x,int y){return(x+y);}main(){int a=2,b=5,c=8;printf("%3.0f\n",fun((int)fun(a+c,b),a-c));}程序运行后的输出结果是A)编译出错B)9C)21D)正确答案: B(28)若有以下调用语句,则不正确的fun函数的首部是main(){ …int a[50],n;…fun(n, &a[9]);…}A)void fun(int m, int x[])B)void fun(int s, int h[41])C)void fun(int p, int *s)D)void fun(int n, int a)正确答案: D(29)fseek函数的正确调用形式是A)fseek(文件指针,起始点,位移量)B)fseek(文件指针,位移量,起始点)C)fseek(位移量,起始点,文件指针)D)fseek(起始点,位移量,文件指针)正确答案: B(30)若fp是指向某文件的指针,且已读到文件末尾,则函数feof(fp)的返回值是A)EOFB)-1C)1D)NULL正确答案: C(31)若有说明语句:char c='\72';则变量cA)包含1个字符B)包含2个字符C)包含3个字符D)说明不合法,c的值不确定正确答案: A(32)若有说明 int a[3][4];则a数组元素的非法引用是A)a[0][2*1]B)a[1][3]C)a[4-2][0]D)a[0][4]正确答案: D(33)设有以下说明语句struct stu{int a;float b;} stutype;则下面的叙述不正确的是A)struct是结构体类型的关键字B)struct stu是用户定义的结构体类型C)stutype是用户定义的结构体类型名D)a和b都是结构体成员名正确答案: C(34)在C语言中,引用数组元素时,其数组下标的数据类型允许是A)整型常量B)整型表达式C)整型常量或整型表达式D)任何类型的表达式正确答案: C(35)若运行时给变量x输入12,则以下程序的运行结果是main(){int x,y;scanf("%d",&x);y=x>12?x+10:x-12;printf("%d\n",y);}A)0B)22C)12D)10正确答案: A(36)以下说法正确的是A)C语言程序总是从第一个的函数开始执行B)在C语言程序中,要调用函数必须在main()函数中定义C)C语言程序总是从main()函数开始执行D)C语言程序中的main()函数必须放在程序的开始部分正确答案: C(37)表达式0x13^0x17的值是A)0x04B)0x13C)0xE8D)0x17正确答案: A(38)有以下程序#define F(X,Y)(X)*(Y)main(){int a=3, b=4;printf("%d\n", F(a++, b++)); }程序运行后的输出结果是A)12B)15C)16D)20正确答案: A(39)下列程序执行后的输出结果是void func(int *a,int b[]){ b[0]=*a+6; }main(){int a,b[5];a=0; b[0]=3;func(&a,b); printf("%d\n",b[0]);}A)6B)7C)8D)9正确答案: A(40)若有下面的程序段:char s[]="china";char *p; p=s;则下列叙述正确的是A)s和p完全相同B)数组s中的内容和指针变量p中的内容相等C)s数组长度和p所指向的字符串长度相等D)*p与s[0]相等正确答案: D(41)以下程序中函数sort的功能是对a数组中的数据进行由大到小的排序void sort(int a[],int n){int i,j,t;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){int aa[10]={1,2,3,4,5,6,7,8,9,10},i;sort(&aa[3],5);for(i=0;i<10;i++)printf("%d,",aa[i]);printf("\n");}程序运行后的输出结果是A)1,2,3,4,5,6,7,8,9,10,B)10,9,8,7,6,5,4,3,2,1,C)1,2,3,8,7,6,5,4,9,10,D)1,2,10,9,8,7,6,5,4,3,正确答案: C(42)以下程序的运行结果是#include ""main(){struct date{int year,month,day;}today;printf("%d\n",sizeof(struct date));}A)6B)8C)10D)12正确答案: A(43)若有语句int *point,a=4;和 point=&a;下面均代表地址的一组选项是A)a,point,*&aB)&*a,&a,*pointC)*&point,*point,&aD)&a,&*point,point正确答案: D(44)在调用函数时,如果实参是简单的变量,它与对应形参之间的数据传递方式是A)地址传递B)单向值传递C)由实参传形参,再由形参传实参D)传递方式由用户指定正确答案: B(45)已定义以下函数fun(char *p2, char *p1){while((*p2=*p1)!='\0'){p1++;p2++;}}函数的功能是A)将p1所指字符串复制到p2所指内存空间B)将p1所指字符串的地址赋给指针p2C)对p1和p2两个指针所指字符串进行比较D)检查p1和p2两个指针所指字符串中是否有'\0'正确答案: A(46)若执行下述程序时,若从键盘输入6和8时,结果为main(){int a,b,s;scanf("%d%d",&a,&b);s=aif(a<b)s=b;s*=s;printf("%d",s);}A)36B)64C)48D)以上都不对正确答案: B(47)fscanf函数的正确调用形式是A)fscanf(fp,格式字符串,输出表列);B)fscanf(格式字符串,输出表列,fp);C)fscanf(格式字符串,文件指针,输出表列);D)fscanf(文件指针,格式字符串,输入表列);正确答案: D(48)下列关于C语言数据文件的叙述中正确的是A)文件由ASCII码字符序列组成,C语言只能读写文本文件B)文件由二进制数据序列组成,C语言只能读写二进制文件C)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件正确答案: D(49)有以下程序void ss(char *s,char t){while(*s){if(*s= =t)*s=t-'a'+'A';s++;}}main(){char str1[100]="abcddfefdbd",c='d';ss(str1,c); printf("%s\n",str1);}程序运行后的输出结果是A)ABCDDEFEDBDB)abcDDfefDbDC)abcAAfefAbAD)Abcddfefdbd正确答案: B(50)若以下定义:struct link{int data;struct link *next;} a,b,c,*p,*q;且变量a和b之间已有如下图所示的链表结构:指针p指向变量a,q指向变量c。

一级c类模拟考试答案

一级c类模拟考试答案

一级c类模拟考试答案一、单项选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于定义结构体?A. structB. unionC. enumD. typedef答案:A2. 若有定义`int a[5] = {1, 2, 3, 4, 5};`,则`a[0]`的值是多少?A. 0B. 1C. 2D. 3答案:B3. 下列哪个函数不能用于字符串的复制?A. strcpyB. strncpyC. strcatD. memcpy答案:C4. 在C语言中,哪个运算符用于计算两个数的乘积?A. *B. /C. %D. ^答案:A5. 下列哪个选项是合法的C语言变量名?A. 2variableB. variable-nameC. $variableD. variable_name答案:D6. C语言中,哪个函数用于计算数组中元素的总和?A. sumB. totalC. countD. None of the above答案:D7. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. !D. All of the above答案:D8. 在C语言中,哪个关键字用于声明一个函数?A. defineB. functionC. voidD. int答案:C9. 下列哪个选项是C语言中的位运算符?A. &B. |C. ^D. All of the above答案:D10. 在C语言中,哪个函数用于将字符串反转?A. reverseB. strrevC. strcpyD. None of the above答案:D二、填空题(每题2分,共20分)1. 在C语言中,`printf`函数用于__输出__。

答案:格式化2. `sizeof`运算符用于获取__数据类型__的__大小__。

答案:变量;占用内存3. 在C语言中,`for`循环通常用于__迭代__。

答案:序列4. `break`语句用于__退出__循环或__开关__语句。

大一计算机c语言考试题及答案

大一计算机c语言考试题及答案

大一计算机c语言考试题及答案一、选择题(每题2分,共10分)1. C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 下列哪个选项不是C语言的标准输入输出函数?A. printfB. scanfC. coutD. getchar答案:C3. 在C语言中,以下哪个选项是正确的字符串定义?A. char str[] = "Hello";B. char str[] = 'Hello';C. char str[] = {"Hello"};D. char str[] = {H, e, l, l, o, '\0'};答案:A4. 下列哪个选项是C语言中的合法整数?A. 012B. 0x1AC. 0.1D. 0xG答案:B5. 在C语言中,以下哪个选项是正确的数组定义?A. int a[5] = {0, 1, 2, 3, 4};B. int a[] = {0, 1, 2, 3, 4};C. int a[5] = {0, 1, 2};D. int a[] = {0};答案:A二、填空题(每题3分,共15分)1. C语言中,用于定义一个函数的关键字是______。

答案:void2. 在C语言中,表示逻辑与的运算符是______。

答案:&&3. C语言中,用于定义一个字符常量的是______。

答案:''4. C语言中,用于定义一个整型变量的关键字是______。

答案:int5. 在C语言中,用于定义一个指针变量的关键字是______。

答案:*三、简答题(每题5分,共20分)1. 简述C语言中变量的作用域。

答案:变量的作用域是指变量可以被访问的代码区域。

局部变量的作用域是定义它的函数或代码块,全局变量的作用域是整个程序。

2. 解释C语言中的指针是什么?答案:指针是C语言中的一种数据类型,它存储的是变量的内存地址,而不是变量的值。

(完整版)C语言考试题库及答案

(完整版)C语言考试题库及答案

(完整版)C语言考试题库及答案一、选择题1. 以下哪个选项是C语言的合法标识符?A. intB. 2abcC. voidD. a+b答案:C2. 在C语言中,下列哪个选项是正确的数据类型?A. floatB. integerC. doubleD. All of the above答案:D3. 若变量定义如下:int a = 5;,则执行语句printf("%d", a++); 后,a的值是多少?A. 4B. 5C. 6D. 无法确定答案:C4. 以下哪个函数用于动态分配内存?A. malloc()B. alloc()C. new()D. calloc()答案:A5. 在C语言中,哪个运算符用于取模(取余)?A. %B. /C. &D. |答案:A以下是判断题部分:6. C语言中的数组名可以作为指向该数组首元素的指针使用。

()答案:正确7. 在C语言中,结构体变量可以作为函数的参数传递。

()答案:正确8. 在C语言中,静态存储类别的变量在程序运行期间始终占据内存空间。

()答案:正确二、填空题9. 在C语言中,定义一个整型变量需要使用关键字______。

答案:int10. 若变量定义如下:int a = 10;,则执行语句printf("%d", a--); 后,a的值是______。

答案:911. 在C语言中,用于动态分配内存的函数是______。

答案:malloc12. 在C语言中,用于释放动态分配的内存的函数是______。

答案:free13. 在C语言中,用于清空标准输入缓冲区的函数是______。

答案:getchar()三、编程题14. 编写一个C语言程序,实现以下功能:输入一个整数,输出它的阶乘。

答案:```c#include <stdio.h>int main() {int n, i;long factorial = 1;printf("Enter an integer: ");scanf("%d", &n);if (n < 0) {printf("Factorial of a negative number doesn't exist.\n");} else {for (i = 1; i <= n; i++) {factorial = i;}printf("Factorial of %d is %ld\n", n, factorial);}return 0;}```15. 编写一个C语言程序,实现以下功能:输入一个字符串,判断它是否是回文(正读和反读都一样的字符串)。

全国计算机二级C语言模拟测试【含详细解析】 (19)

全国计算机二级C语言模拟测试【含详细解析】 (19)

1.下列叙述中正确的是()。

A. 快速排序法适用于顺序存储的线性表B. 快速排序适用于链式存储的线性表C. 链式存储的线性表不可能排序D. 堆排序适用于非线性结构正确答案:A你的答案:解析:【解析】排序可以在不同的存储结构上实现,但快速排序法适用于顺序存储的线性表,不适用于链式存储的线性表。

堆排序适用于线性结构,不适用于非线性结构。

故本题选择A 选项。

2.循环队列的存储空间为Q(1:50)。

经过一系列正常的入队与退队操作后,front=rear=25。

后又成功地将一个元素入队,此时队列中的元素个数为()。

A. 50B. 1C. 26D. 2正确答案:B你的答案:解析:【解析】当front=rear=25时可知队列要么为空要么队列满,题目中又成功地将一个元素入队,说明之前队列为空(为满时队列中无法入队元素),为空的队列入队一个元素后队列中元素个数为1。

故本题选择B选项。

3.树的度为3,且有9个度为3的结点,5个度为1的结点,但没有度为2的结点。

则该树总的结点数为()。

A. 32B. 14C. 33D. 19正确答案:C你的答案:解析:【解析】在树中,树中的节点数等于树中所有节点的度之和再加1。

题干中树的度为3,有9个度为3的结点,5个度为1的结点,无度为2的结点,设有n个度为0的结点,则总结点数=9×3+5×1+0×2+n×0+1=33个。

故本题选择C选项。

4.设栈与队列初始状态为空。

首先A,B,C,D,E依次入栈,再F,G,H,I,J依次入队;然后依次出栈至栈空,再依次出队至队空。

则输出序列为()。

A. F,G,H,I,J,A,B,C,D,EB. F,G,H,I,J,E,D,C,B,AC. E,D,C,B,A,J,I,H,G,FD. E,D,C,B,A,F,G,H,I,J正确答案:D你的答案:解析:【解析】栈称为“后进先出”表或“先进后出”的线性表;队列称为“先进先出”或“后进后出”的线性表。

C语言程序设计模拟试题三(含答案)

C语言程序设计模拟试题三(含答案)

C语言程序设计模拟试题三(含答案)1、计算机的存储器完整的应包括A) 软盘、硬盘B) 磁盘、磁带、光盘C) 内存储器、外存储器D) RAM、ROM2、计算机中运算器的作用是A) 控制数据的输入/输出B) 控制主存与辅存间的数据交换C) 完成各种算术运算和逻辑运算D) 协调和指挥整个计算机系统的操作3、软磁盘处于写保护状态时,其中记录的信息A) 绝对不会丢失B) 不能被擦除,但能追加新信息C) 不能通过写磁盘操作被更新D) 不能以常规方式被删除,但可以通过操作系统的格式化功能被擦除4、光盘根据基制造材料和记录信息的方式不同,一般可分为A) CD、VCDB) CD、VCD、DVD、MP3C) 只读光盘、可一次性写入光盘、可擦写光盘D) 数据盘、音频信息盘、视频信息盘5、在计算机系统中,可执行程序是A) 源代码B) 汇编语言代码C) 机器语言代码D) ASCII码6、计算机软件系统包括A) 操作系统、网络软件B) 系统软件、应用软件C) 客户端应用软件、服务器端系统软件D) 操作系统、应用软件和网络软件7、目前,一台计算机要连入Internet,必须安装的硬件是A) 调制解调器或网卡B) 网络操作系统C) 网络查询工具D) WWW浏览器8、在多媒体计算机系统中,不能存储多媒体信息的是A) 光盘B) 磁盘C) 磁带D) 光缆9、要将当前盘当前目录下一个文本文件内容显示在屏幕上,正确的命令形式是A) TYPE a*.*B) TYPE abc.exeC) TYPE pro.c>PRND) TYPE abc.txt10、下列更改文件名的命令中正确的是A) REN A:file1 C:F1B) RENAME A: A:file1 C:F1C) REN A:file1 F1D) REN A:file1 \\SUB\\F111、已知A盘为DOS系统启动盘,只有A:\DOS下有自动批处理文件,其中内容为:CD\DOSMD USERCD USER由A盘启动DOS系统后,A盘的当前目录是A) \\DOS B) \\DOS\\USER12、MS-DOS是A) 分时操作系统B) 分布式操作系统C) 单用户、单任务操作系统D) 单用户、多任务操作系统13、在Windows操作系统中,不同文档之间互相复制信息需要借助于A) 剪切板B) 记事本C) 写字板D) 磁盘缓冲器14、在Windows操作系统中A) 同一时刻可以有多个活动窗口B) 同一时刻可以有多个应用程序在运行,但只有一个活动窗口C) 同一时刻只能有一个打开的窗口D) DOS应用程序窗口与Windows应用程序窗口不能同时打开着15、下列叙述中正确的是A) 所有DOS应用程序都可以在Windows操作系统中正确运行B) 所有DOS应用程序都不能在Windows操作系统中正确运行C) 大部分DOS应用程序可以在Windows操作系统中正确运行D) 为DOS5.0以上版本操作系统编写的应用程序可以在Windows操作系统中正确运行16、下列叙述中正确的是A) C语言编译时不检查语法B) C语言的子程序有过程和函数两种C) C语言的函数可以嵌套定义D) C语言所有函数都是外部函数17、以下所列的C语言常量中,错误的是A) 0xFF B) 1.2e0.518、下列选项中,合法的C语言关键字是A) VAR B) cherC) integer D) default19、以下变量x.、y、z均为double类型且已正确赋值,不能正确表示数学式子x/(y*z) 的C语言表达式是A) x/y*z B) x*(1/(y*z))C) x/y*1/z D) x/y/z20、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是A) -3 B) 9C) -12 D) 621、设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y的值为A) 不定值B) 4C) 3 D) 122、若变量已正确说明为float类型,要通过语句scanf("%f %f %f ",&a,&b,&c);给a赋于10.0,b赋予22.0,c赋予33.0,不正确的输入形式是:A) 10<回车>22<回车>33<回车>B) 10.0,22.0,33.0<回车>C) 10.0<回车>22.0 33.0<回车>D) 10 22<回车>33<回车>23、若执行以下程序时从键盘上输入9,则输出结果是Main0{ int n;scanf("%d",&n);if(n++<10) printf("%d\n",n);else printf("%d\n",n--);}A) 11 B) 10C) 9 D) 824、若a、b、c1、c2、x、y、均是整型变量,正确的switch语句是A) swich(a+b);{ case 1:y=a+b; break;case 0:y=a-b; break;}B) switch(a*a+b*b){case 3:case 1:y=a+b;break;case 3:y=b-a,break;}C) switch a{ case c1 :y=a-b; breakcase c2: x=a*d; breakdefault:x=a+b;}D) switch(a-b){default:y=a*b;breakcase 3:case 4:x=a+b;break;case 10:case 11:y=a-b;break;}25、有以下程序段int k=0while(k=1)k++;while 循环执行的次数是A) 无限次B) 有语法错,不能执行C) 一次也不执行D) 执行1次26、以下程序执行后sum的值是min(){ int i , sum;for(i=1;i<6;i++) sum+=i;printf("%d\n",sum);}A) 15 B) 14C) 不确定D) 027、有以下程序段int x=3do{ printf("%d",x-=2); }while (!(--x));其输出结果是A) 1 B) 3 0C) 1 -2 D) 死循环28、若变量c为char类型,能正确判断出c为小写字母的表达式是A) 'a'<=c<= 'z'B) (c>= 'a')||(c<= 'z')C) ('a'<=c)and ('z'>=c)D) (c>= 'a')&&(c<= 'z')29、以下所列的各函数首部中,正确的是A) void play(var :Integer,var b:Integer)B) void play(int a,b)C) void play(int a,int b)D) Sub play(a as integer,b as integer)30、以下程序的输出结果是fun(int x, int y, int z){ z=x*x+y*y; }main(){ int a=31;fun(5,2,a);printf("%d",a);}A) 0 B) 29C) 31 D) 无定值31、下列程序段的输出结果是void fun(int *x, int *y){printf("%d %d", *x, *y); *x=3; *y=4;}{ int x=1,y=2;fun(&y,&x);printf("%d %d",x, y);}A) 2 1 4 3 B) 1 2 1 2C) 1 2 3 4 D) 2 1 1 232、下列程序的输出结果是main(){char a[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5; printf("%d",*--p);}A) 非法B) a[4]的地址C) 5 D) 333、下列程序的运行结果是void fun(int *a, int *b){ int *k;k=a; a=b; b=k;}main(){ int a=3, b=6, *x=&a, *y=&b;fun(x,y);printf("%d %d", a, b);}A) 6 3 B) 3 6C) 编译出错D) 0 034、下面程序的输出结果是{int a[ ]={1,2,3,4,5,6,7,8,9,0,},*p;p=a;printf("%d\n",*p+9);}A) 0 B) 1C) 10 D) 935、当调用函数时,实参是一个数组名,则向函数传送的是A) 数组的长度B) 数组的首地址C) 数组每一个元素的地址D) 数组每个元素中的值36、设有以下说明语句struct ex{ int x ; float y; char z ;} example;则下面的叙述中不正确的是A) struct结构体类型的关键字B) example是结构体类型名C) x,y,z都是结构体成员名D) struct ex是结构体类型37、以下只有在使用时才为该类型变量分配内存的存储类说明是A) auto和staticB) auto和registerC) register和staticD) extern和register38、若fp是指向某文件的指针,且已读到文件末尾,则库函数feof(fp)的返回值是A) EOF B) -1C) 非零值D) NULL39、以下程序的输出结果是main(){ int i, k, a[10], p[3];k=5;for (i=0;i<10;i++) a[i ]=i;for (i=0;i<3;i++) p[i ]=a[i *(i+1)];for (i=0;i<3;i++) k+=p[i] *2;printf("%d\n",k);}A) 20 B) 21C) 22 D) 2340、以下程序的输出结果是main(){ int i, x[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)printf("%d,",x[i][2-i]);}A) 1,5,9 B) 1,4,7C) 3,5,7 D) 3,6,941、以下程序的输出结果是main(){ int a[3][3]={ {1,2},{3,4},{5,6} },i,j,s=0; for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf("%dn",s);}A) 18 B) 19 C) 20 D) 2142、以下程序的输出结果是main(){ char w[][10]={ "ABCD","EFGH","IJKL","MNOP"},k;for(k=1;k<3;k++)printf("%s\n",w[k]);}A) ABCDFGHKLB) ABCDEFGIJMC) EFGJKOD) EFGHIJKL43、当执行下面的程序时,如果输入ABC,则输出结果是#include "stdio.h"#include "string.h"main(){ char ss[10]="1,2,3,4,5";gets(ss); strcat(ss, "6789");printf("%s\n",ss);}A) ABC6789 B) ABC67C)12345ABC6 D) ABC45678944、假定以下程序经编译和连接后生成可执行文件PROG.EXE,如果在此可执行文件所在目录的DOS提示符下键入:PROG ABCDEFGH IJKL<回车>,则输出结果为main( int argc, char *argv[])){ while(--argc>0) printf("%s",argv[argc]);printf("\n");}A) ABCDEFG B) IJHLC) ABCDEFGHIJKL D) IJKLABCDEFGH45、以下程序的输出结果是long fun( int n){ long s;if(n= =1 || n= =2) s=2;else s=n-fun(n-1);return s;}main(){ printf("%ld\n", fun(3)); }A) 1 B) 2C) 3 D) 446、以下程序的输出结果是#define SQR(X) X*Xmain(){ int a=16, k=2, m=1;a/=SQR(k+m)/SQR(k+m);printf("d\n",a);}A) 16 B) 2C) 9 D) 147、若定义了以下函数:void f(……){……*p=(double *)malloc( 10*sizeof( double));……}p是该函数的形参,要求通过p把动态分配存储单元的地址传回主调函数,则形参p的正确定义应当是A) double *p B) float **pC) double **p D) float *p48、以下程序的输出是struct st{ int x; int *y;} *p;int dt[4]={ 10,20,30,40 };struct st aa[4]={ 50,&dt[0],60,&dt[0],60,&dt[0],60,&dt[0],};main(){ p=aa;printf("%d\n",++(p->x));}A) 10 B) 11C) 51 D) 6049、假定建立了以下链表结构,指针p、q分别指向如图所示的结点,则以下可以将q所指结点从链表中删除并释放该结点的语句组是A) free(q); p->next=q->next;B) (*p).next=(*q).next; free(q);C) q=(*q).next; (*p).next=q; free(q);D) q=q->next; p->next=q; p=p->next; free(p);50、以下程序的输出结果是main(){ int x=0.5;char z='a';printf("%d\n", (x&1)&&(z<'z') ); }A) 0 B) 1C) 2 D) 3答案:CCCCC BADDCCCABC DBDACCBBDA CCDCCACBCB BBCBCADADA BCCBB。

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

计算机语言C模拟考试总分:150分考试时间:120分钟注意事项:➢题目包括五大部分, 单项选择题,判断题,填空题,程序分析题,编程题,请按要求在规定时间内作答。

➢考试中途不能无端离场,否则视为放弃。

考试过程中如遇问题请及时向监考老师反馈。

一、单项选择题(每小题2 分,共 40分)1、有以下程序main(){char a1='m', a2='m';printf("%c\n", (a1, a2) );}以下叙述中正确的是________。

A、程序输出大写字母MB、程序输出小写字母mC、格式说明符不足,编译出错D、程序运行时产生出错信息2、下列数据中,不合法的c语言实型数据的是________。

A、0.123B、123e3C、2.1e3.5D、789.03、表达式10!=12的值是________。

A、0B、1C、trueD、非零值4、下述语句中,_____中的if语句语法是错误的。

( )A、if(x>y);B、if(x==y)x+=y;C、if(x!=y)seanf("%d",&x)else scanf("%d",&y);D、if(x<y)x++;y++;5、以下for语句构成的循环执行了______次。

#include <stdio.h>#define N 2#define M N+1#define NUM (M+1)*M/2main(){int i,n=0;for(i=1;i<=NUM;i++){N++;printf("%d",n);}printf("\n");}A、5B、6C、8D、96、下列数组说明中,正确的是________。

A、int array[][4];B、int array[][];C、int array[][][5];D、int array[3][];7、下列选项中不会引起二义性的宏定义是________。

A、#define S(x)X*xB、#define S(x) (x)*(x)C、#define S(x) (x*x)D、#define S(x) ((x)*(x))8、若数组a定义为int[][]a=new int[3][4],则a是________。

A、一维数组B、二维数组C、三维数组D、四维数组9、如果用printf()来输出双精度型数据、则正确的格式控制符是________。

A、%-10.2fB、%lfC、%eD、%g10、在c语言中,不允许有常量的数据类型是________。

A、整型B、结构型C、字符型D、字符串11、下面程序的运行结果是#include<stdio.h>main(){char a[]="morning",t;int i,j=0;for(i=1;i<7;i++) {if(a[j]<a[i]) {j=i;t=a[j];a[j]=a[7];a[7]=a[j];}}printf("%s", a);}A、mrgninrB、mC、moringD、morning12、以下叙述中正确的是________。

A、两个字符串可以用关系运算符进行大小比较B、函数调用 strlen(s)会返回字符串 s 实际占用内存的大小(以字节为单位)C、C 语言本身没有提供对字符串进行整体操作的运算符D、当拼接两个字符串时,结果字符串占用的内存空间是两个原串占用空间的和13、若希望当a的值为奇数时,表达式的值为"真",a的值为偶数时,表达式的值为"假",则下面不能满足要求的表达式是________。

A、A%2==1B、!(A%2==0)C、!(A%2)D、A%214、算法指的是________。

A、解决问题的方法、步骤和思路的一种描述B、计算机程序C、排序方法D、数据处理15、下面程序段的输出结果是________。

#include<stdio.h>main(){float x=1.236547;printf("%f\n",(int)(x*1000+0.5)/(float)1000);}A、1.237000B、输出格式说明与输出项不匹配,输出无定值C、1.236000D、1.2416、有以下程序main(){int i, j;for(i=1;i<4;i++){for(j=i;j<4;j++) printf("%d*%d=%d ",i,j,i*j); printf("\n");}}程序运行后的输出结果是______。

A、1*1=1 1*2=2 1*3=32*1=2 2*2=4 2*3=63*1=3 3*2=6 3*3=9B、1*1=1 1*2=2 1*3=32*2=4 2*3=63*3=9C、1*1=1D、1*1=1 1*2=22*1=2 2*2=43*3=917、变量a所占的内存字节数是______。

union u{char st[4];int i;long l;};struct A {int c;union u;} a;A、4B、5C、6D、818、有以下程序main(){int a[3][2]={0},(*ptr)[2],i,j;for(i=0;i<2;i++){ptr=a+i;scanf("%d",*ptr);}for(i=0;i<3;i++){for(j=0;j<2;j++) printf("%2d",a[i][j]); printf("\n");}}若运行时输入:1 2 3<回车>,则输出结果是______。

A、产生错误信息B、1 02 00 0C、1 23 00 0D、1 02 03 019、若有以下定义,则对a数组元素的正确引用是________。

int a[5],*p=a;A、*&a[5]B、*a+1C、*(p+5)D、*(a+2)20、有以下结构体说明和变量的定义,且指针p指向变量a’指针q指向变量b,则不能把结点b连接到结点a之后的语句是________。

struct node{char data;struct node*next;}a,b,*p=&a,*q=&b;A、a.next=q;B、P.next=&b:C、p—>next=&b;D、(*p).next=q;二、判断题(每小题2 分,共 20分)()1、在c程序运行过程中,其值不能被改变的量称为常量,其值可以改变的量称为变量。

()2、c 语言规定 : 定义符号常量时必须用大写字母。

()3、对全局指针变量与局部静态指针变量而言,在定义时若未被初始化,则编译系统自动初始化为空指针0()4、for循环的三个表达式可以任意省略,while,do-while也是如此。

()5、函数strcpy(str1,str2);的功能是将字符串str2复制到字符串str1中。

()6、c程序函数体是由左右花括号{}括起来的部分。

()7、数组名能与其它变量名相同。

数组名后是用方括号括起来的常量表达式,不能用圆括号。

()8、c语言规定,在一个源程序中,main函数的位置必须在最后。( )()9、若函数体内没有return语句,程序的流程就执行到函数体的末尾,然后返回到调用函数。

这时带回一个不确定的函数值。

()10、如果在同一个源文件中,外部变量与局部变量同名,则在局部变量的作用范围内,外部变量依然起作用。

三、填空题(每小题4 分,共 20分)1、字符串函数___________用于把一个字符串写入指定的磁盘文件中。

2、若变量x,y已定义为int类型且x的值为99,y的值为9,请将输出语句printf( ________ ,x/y);补充完整,使其输出的计算结果形式为:x/y=11。

3、在c语言的循环语句for,while,do-while语句中,用于直接中断最内层循环的语句是________。

我的答案: break4、源程序的基本单位是【】。

5、若有定义:double x[3][5];则x 数组中行下标的下限为【1】,列下标的上限为【2】。

四、程序分析题(每小题5 分,共 20分)1、#include <stdio.h>void main(){int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;for (i=1;i<3;i++) for (j=0;j<i;j++) s+=a[i][j];printf("%d\n",s);}2、以下程序的输出结果是_____________。

main(){float x;printf("%.4f\n",(x=2*4,x+0.5));}3、程序结果:void main(){int a,b,sum;a=123;b=456;sum=a+b;printf("sum is %d\n",sum);}4、已知字符a的acsii码值为65,以下语句的输出结果是 ________char ch=’b’;printf("%c %d\n",ch,ch);五、编程题(每小题分,共 50分)1、已知银行定期存款利率为r=2.25%,输入存款本金x、存款年数n,输出本利之和y=x(1+r)(1+r)...(1+r),共n个(1+r)。

(本题12分)2、判断101-200之间有多少个素数,并输出所有素数。

(本题18分)3、定义一个结构体变量(包括年、月、日)。

编写一个函数days,计算该日期在本年中是第几天(注意闰年问题)。

由主函数将年月日传递给days函数,计算之后,将结果传回到主函数输出。

(本题20分)【计算机语言C模拟考试参考答案】一、单项选择题1、A2、C【解析】在C语言中,实数有两种表示形式。

即十进制数形式和指数形式,在指数形式中,字母e的前面必须有数字,且e的后面必须是整数。

e3,2.1e3.5,e3,e等都是不合法的指数形式,而123e3或123E3都代表123乘以10的3次方。

3、B4、C5、C6、A7、D8、B【解析】二维数组有两种定义方式:①type arrayName[][];②type[][]arrayName;从题目中的语句可以看出,本题定义了一个二维数组。

9、B10、B11、B【解析】本题考查了一维数组元素的引用方法。

题中数组a为一字符串数组,通过数组首地址和下标可以引用数组中的每个元素。

因为字符数组相当于字符串12、C【解析】本题考查字符串处理函数 strlen、 strcat strcmp.b 选项中strlen 返回的是字符串 s 实际占用内存大小加上结尾符 A 选项中不能用关系运算符进行大小比较,可以使用 strcmp D 选项当使用 strcat 连接函数时,内存空间会减少一个字符位置。

相关文档
最新文档