计算机二级c语言第九章 数组和指针习题与答案

合集下载

全国二级计算机考试c语言试题及答案

全国二级计算机考试c语言试题及答案

全国二级计算机考试c语言试题及答案全国二级计算机考试C语言试题及答案一、选择题(每题1分,共10分)1. 在C语言中,以下哪个选项是合法的变量名?A. 2variableB. _intC. intD. variable2答案:B2. 下列关于C语言中数组的描述,正确的是:A. 数组的大小在定义后可以改变B. 数组的索引从0开始C. 数组可以存储不同类型的数据D. 数组必须在程序开始时定义答案:B3. 在C语言中,以下哪个关键字用于定义一个函数?A. structB. intC. voidD. return答案:C4. C语言中,以下哪个运算符用于取地址?A. *B. &C. %D. #答案:B5. 下列关于C语言中指针的描述,错误的是:A. 指针可以存储地址B. 指针可以被赋值为NULLC. 指针可以存储任何类型的数据D. 指针可以被解引用答案:C6. 在C语言中,以下哪个选项是正确的注释方式?A. // 这是注释B. /* 这是注释 */C. //* 这是注释 */D. /* 这是注释答案:A7. C语言中,以下哪个函数用于将字符串复制到另一个字符串?A. strcpyB. strcatC. strcmpD. strlen答案:A8. 在C语言中,以下哪个选项是正确的文件操作函数?A. fopenB. fcloseC. fprintfD. All of the above答案:D9. C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A10. 在C语言中,以下哪个选项是正确的条件语句?A. if (x)B. if xC. if (x == 0)D. if (x != 0)答案:A二、填空题(每题2分,共10分)1. 在C语言中,______关键字用于声明一个变量。

答案:int2. 一个C语言程序的执行从______函数开始。

C语言全国计算机二级等级考试教程第一二章(章节带习题)

C语言全国计算机二级等级考试教程第一二章(章节带习题)
10
2.2 标识符、常量和变量
2.2.3 符号常量
在C语言中,可以用一个符号名来代表一个常量,称为符号常
量。但是这个符号名必须在程序中用(#define)进行特别的“
指定"。 例2.2 计算圆面积和周长,此程序中将如何教大家使用符号常量。
#include “stdio.h” /*包含头文件*/
#define PI 3.14159 /*定义符号常量,符号常量名为PI,用PI来代表3.14159*/
main()
/*主函数,程序的入口*/
{double r,s,l;
/*声明部分,定义了3实型个变量*/
r
r=5.0;
/*给变量r赋值*/
函 s=PI*r*r;
数 体
l=2*PI*r;
/*计算圆的面积*/ /*计算圆的周长*/
s
printf(“s=%f,l=%f\n”,s,l/)*;分别圆的面积和周长*/
/*给变量b赋值*/
数 体
area=a*b;
/*将a*b的结果赋值给变量area*/
printf(“a=%f,b=%f,area=%f\n”,a,b,area/)*;分别输出矩形的两条边长和面积*/
1.2
}
3.6
a=1.200000,b=3.600000,area=4.320000
4.32
注意:
1. C程序由函数组成,一个程序必须有一个且只能有一个主函数(main),C程
a
b
1.5000002.500000 2.5000003.500000
a b
内存空间
2.在程序中,声明变量就是在计算机内存中申请了某个内存单元。对变量 进行赋值,实质上就是把数据存入该变量所代表的存储单元中。

c国家二级考试真题及答案

c国家二级考试真题及答案

c国家二级考试真题及答案1. 单选题:下列哪个选项是C语言中用于声明整型变量的关键字?A. intB. floatC. doubleD. char答案:A2. 多选题:在C语言中,哪些运算符用于比较两个值?A. ==(等于)B. !=(不等于)C. <(小于)D. >(大于)答案:A、B、C、D3. 填空题:在C语言中,使用____关键字可以定义一个函数。

答案:void4. 判断题:C语言中的数组索引是从0开始的。

答案:正确5. 简答题:请解释C语言中的指针是什么,并给出一个声明指针的示例。

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

声明指针的示例代码如下:```cint *ptr;```这里`ptr`是一个指向整型数据的指针。

6. 编程题:编写一个C语言程序,计算并输出1到100之间所有偶数的和。

答案:```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}printf("The sum of even numbers between 1 and 100is: %d\n", sum);return 0;}```7. 阅读程序题:分析以下代码段的功能,并指出其输出结果。

```c#include <stdio.h>int main() {int a = 10;if (a > 5) {printf("%d\n", a);} else {printf("a is not greater than 5\n");}return 0;}```答案:该代码段的功能是判断变量`a`的值是否大于5,如果是,则输出`a`的值;否则,输出"a is not greater than 5"。

计算机二级C语言文件习题答案

计算机二级C语言文件习题答案
5) i=4,退出循环。
(4)fseek(fp,-2L,SEEK_END);文件定位于文件末尾的倒数第二个字符型字节处,即定位于整数‘c’的前面。
(5)fread(&t,1,1,fp);从文件中读取一个1字节的数字,并且赋值给变量t .即t变量得到的值为‘c’.
(6)关闭文件。
(7)输出变量t的值,即c.
2) i=2,i<6为真,执行循环体fprintf(fp,”%d”,i);给fp指针打开的文件out.dat中写入数据2。判断i%3==0为假,因此不执行fprintf(fp,”\n”)。
3) i=3,i<6为真,执行循环体fprintf(fp,”%d”,i);给fp指针打开的文件out.dat中写入数据3。判断i%3==0为真,执行fprintf(fp,”\n”),写入回车符。
(5)从文件 中读取一个数字赋值给变量n ,则变量n得到的值为123.
(6)关闭文件,输出变量n得到的值,即输出的结果为123.
20.答案选择:D
解析:
(1) fopen(“d2.dat”,”w”);打开的是一个文本文件,以写的方式打开该文件。
(2) fprintf(fp,“%d%d\n”,a[0],a[1],a[2]);将a[0],a[1]的值写到文件中,文件中的内容为:12换行,
18.答案选择:C
解析:fread函数的格式为:fread(buffer,size,count,fp);其中的buffer代表的是从文件中读取出来的数据存放的首地址。size 代表的是每一个数据所占有的字节数,count代表的是读入数据的个数。所以选择答案C。
19.答案选择:B
解析:
(1)fopen(“d1.dat”,”w”);打开的是一个文本文件,以写的方式打开该文件。

9月计算机二级C语言章节练习题及答案

9月计算机二级C语言章节练习题及答案

9月计算机二级C语言章节练习题及答案2017年9月计算机二级C语言章节练习题及答案计算机考试考生不受年龄、职业、学历等背景的限制,任何人均可根据自己学习和使用计算机的实际情况报考。

以下是店铺准备的2017年9月计算机二级C语言章节练习题及答案,欢迎浏览。

1.3 结构化程序设计和模块化结构1[填空题]数据结构分为线性结构与非线性结构,带链的栈属于。

参考解析:线性结构【解析】一般将数据结构分为线性结构与非线性结构两大类。

如果一个非空的数据结构满足以下两个条件:①有且只有一个根结点;②每一个结点最多有一个前件,也最多有一个后件。

则称该数据结构为线性结构,所以带链栈为线性结构。

2[填空题]对软件设计的最小单位(模块或程序单元)进行的测试通常称为测试。

参考解析:单元解析:对软件的模板进行的测试通常称为单元测试。

3[填空题]符合结构化原则的三种基本控制结构是顺序结构、__________和循环结构。

参考解析:选择结构【解析】程序设计语言仅仅使用顺序、选择和重复(循环)三种基本控制结构就足以表达出各种其他形式结构的程序设计方法。

遵循程序结构化的设计原则,按结构化程序设计方法设计出的程序易于理解、使用和维护;可以提高编程工作的效率,降低软件的开发成本。

4[填空题]在面向对象方法中,_________描述的是具有相似属性与操作的一组对象。

参考解析:类【解析】在面向对象方法中,把具有相同属性和方法的对象称为类,类是对象的抽象,对象是类的实例。

5[填空题]符合结构化原则的三种基本控制结构为:顺序结构,选择结构和。

参考解析:循环结构6[单选题] 有两个关系R,S如下:由关系R通过运算得到关系s,则所使用的运算为( )。

A.选择B.插入C.投影D.连接参考答案:C参考解析:专门的关系运算有3种:投影、选择和联接。

选择运算是从关系中找出满足给定条件的那些元组,其中的条件是以逻辑表达式给出的;值为真的元组将被选取,这种运算是从水平方向抽取元组。

《全国计算机等级考试二级教程——C语言程序设计》课后题及参考答案

《全国计算机等级考试二级教程——C语言程序设计》课后题及参考答案

本文由皓月90贡献 doc文档可能在WAP端浏览体验不佳。

建议您优先选择TXT,或下载源文件到本机查看。

《全国计算机等级考试二级教程——C 语言程序设计》课后题及参考答案 目 录 第一章、第二章、第三章、第四章、第五章、第六章、第七章、第八章、第九章、 第十章、第十一章、第十二章、第十三章、第十四章、第十五章、第十六章 第一章 程序设计基本概念 1.1 在 TRUBO C 环境中用 RUN 命令运行一个 C 程序时,所运行的程序的后缀是。

 答案:.exe 1.2 C 语言源程序文件的后缀是,经过编译后,生成文件的后缀是,经过连接后, 生成文件的后缀是。

 答案:.c .obj .exe 1.3 结构化程序由、、三种基本结构组成。

 答案:顺序、选择、循环 第二章 C 程序设计的初步知识 一、选择题 2.1 以下选项中正确的整型常量是 A)12. B)-20 C)1,000 D)4 5 6 答案:B 2.2 以下选项中正确的实型常量是 A)0 B)3. 1415 C)0.329×10(2)(10 的 2 次方) D).871 答案:D 2.3 以下选项中不正确的实型常量是 A)2.607E-1 B)0.8103e 2 C)-77.77 D)456e-2 答案:B 2.4 以下选项中不合法的用户标识符是 A)abc.c B)file C)Main D)PRINTF 答案:A 2.5 以下选项中不合法的用户标识符是 A)_123 B)printf C)A¥ D)Dim 答案:C 2.6 C 语言中运算对象必需是整型的运算符是 A)% B)/ C)! D)** 答案:A 2.7 可在 C 程序中用作用户标识符的一组标识符是 A)void define WORD B)as_b3 _123 If C)For -abc case D)2c DO SIG 答案:B 2.8 若变量已正确定义并赋值,符合 C 语言语法的表达式是 A)a=a+7; B)a=7+b+c,a++ C)int(12.3%4) D)a=a+7=c+b 答案:B 2.9 以下叙述中正确的是 A)a 是实型变量,C 允许进行以下赋值 a=10,因此可以这样说:实型变量中允许存放整 型值。

c语言第九章题库及详解答案

c语言第九章题库及详解答案

c语言第九章题库及详解答案C语言第九章题库及详解答案一、选择题1. 在C语言中,以下哪个关键字用于定义数组?A. arrayB. listC. setD. define2. 以下哪个选项是正确的C语言数组声明?A. int myArray[];B. int myArray[10] = {};C. int myArray = 10;D. int myArray(10);3. 数组元素的默认初始化值是什么?A. 0B. 1C. -1D. 随机值4. 在C语言中,数组的索引是从哪个数字开始的?A. 0B. 1C. -1D. 105. 以下哪个函数可以用于计算数组中元素的个数?A. count()B. size()C. length()D. sizeof()二、填空题6. 在C语言中,声明一个具有10个整数元素的数组的语句是:________。

答案:int myArray[10];7. 如果数组的索引从0开始,那么数组myArray[10]的最后一个元素的索引是:________。

答案:98. 要初始化一个数组的所有元素为0,可以使用:________。

答案:int myArray[10] = {0};9. 在C语言中,可以使用________运算符来访问数组的元素。

答案:[]10. 当数组作为参数传递给函数时,实际上传递的是数组的________。

答案:首地址三、简答题11. 解释C语言中数组的内存分配方式。

答案:在C语言中,数组是连续存储在内存中的。

数组的内存分配是静态的,即在编译时分配。

数组的元素按照声明的顺序在内存中连续排列。

12. 说明数组和指针在C语言中的关系。

答案:在C语言中,数组名可以作为指针使用。

数组名代表数组的首地址。

当数组作为参数传递给函数时,数组名退化为指向数组第一个元素的指针。

四、编程题13. 编写一个C语言程序,实现对一个整数数组的排序。

答案:```c#include <stdio.h>void sortArray(int arr[], int size) {int i, j, temp;for (i = 0; i < size - 1; i++) {for (j = i + 1; j < size; j++) {if (arr[i] > arr[j]) {temp = arr[i];arr[i] = arr[j];arr[j] = temp;}}}}int main() {int myArray[] = {5, 3, 8, 2, 1};int size = sizeof(myArray) / sizeof(myArray[0]);sortArray(myArray, size);printf("Sorted array: ");for (int i = 0; i < size; i++) {printf("%d ", myArray[i]);}return 0;}```14. 编写一个C语言程序,实现查找数组中的最大值和最小值。

计算机二级c语言题库及答案

计算机二级c语言题库及答案

2016年计算机二级c语言题库及答案一、选择题(每小题1分,共40小题,共40分)1.设循环队列的存储空间为Q(1:35),初始状态为front=rear=35。

现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为( )。

A.20B.0或35C.15D.162.下列关于栈的叙述中,正确的是( )。

A.栈底元素一定是最后入栈的元素B.栈操作遵循先进后出的原则C.栈顶元素一定是最先入栈的元素D.以上三种说法都不对3.下列链表中,其逻辑结构属于非线性结构的是( )0、A.双向链表B.带链的栈C.二叉链表D.循环链表4.在关系数据库中,用来表示实体间联系的是( )。

A.网状结构B.树状结构C.属性D.二维表5.公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员。

则实体部门和职员间的联系是( )。

A.1:m联系B.m:n联系C.1:1联系D.m:l联系6.右两个关系R和S如下:则由关系R得到关系S的操作是( )。

A.自然连接B.并C.选择D.投影7.数据字典(DD)所定义的对象都包含于( )。

A.软件结构图B.方框图C.数据流图(DFD图)D.程序流程图8.软件需求规格说明书的作用不包括( )。

A.软件设计的依据B.软件可行性研究的依据C.软件验收的依据D.用户与开发人员对软件要做什么的共同理解9.下面属于黑盒测试方法的是( )。

A.边界值分析B.路径覆盖C.语句覆盖D.逻辑覆盖10.下面不属于软件设计阶段任务的是( )。

A.制订软件确认测试计划B.数据库设计C.软件总体设计D.算法设计11.以下叙述中正确的是( )。

A.在C语言程序中,main函数必须放在其他函数的最前面B.每个后缀为C的C语言源程序都可以单独进行编译C.在C语言程序中,只有main函数才可单独进行编译D.每个后缀为.C的C语言源程序都应该包含一个main函数12.C语言中的标识符分为关键字、预定义标识符和用户标识符,以下叙述正确的是( )。

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

第九章数组和指针
1、有以下程序
main()
{ int a[]={2,4,6,8,10}, y=0, x, *p;
p=&a[1];
for(x= 1; x< 3; x++) y += p[x];
printf("%d\n",y);
}
程序运行后的输出结果是
A)10 B)11 C)14 D)15
2、有以下程序
void sum(int a[])
{ a[0] = a[-1]+a[1]; }
main()
{ int a[10]={1,2,3,4,5,6,7,8,9,10};
sum(&a[2]);
printf("%d\n", a[2]);
}
程序运行后的输出结果是
A)6 B)7 C)5 D)8
3、有以下程序
main()
{
int p[8]={11,12,13,14,15,16,17,18},i=0,j=0;
while(i++< 7) if(p[i]%2) j+=p[i];
printf("%d\n",j);
}
程序运行后的输出结果是
A)42 B)45 C)56 D)60
4、设有定义语句 int x[6]={2,4,6,8,5,7},*p=x,i;
要求依次输出x数组6个元素中的值,不能完成此操作的语句是
A)for(i=0;i<6;i++) printf("%2d",*(p++));
B)for(i=0;i<6;i++) printf("%2d",*(p+i));
C)for(i=0;i<6;i++) printf("%2d",*p++);
D)for(i=0;i<6;i++) printf("%2d",(*p)++);
5、有以下程序
#include < stdio.h >
main()
{ int a[]={1,2,3,4,5,6,7,8,9,10,11,12,},*p=a+5,*q=NULL; *q=*(p+5);
printf("%d %d\n",*p,*q); }
程序运行后的输出结果是
A)运行后报错 B)6 6 C)6 11 D)5 10
6、有以下程序段
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;
b=p[5];
b中的值是
A)5 B)6 C)8 D)9
7、已有定义:int i,a[10],*p;则合法的赋值语句是
A)p=100; B)p=a[5]; C)p=a[2]+2; D)p=a+2;
8、以下能正确定义一维数组的选项是
A)int num []; B)#define N 100
int num [N];
C)int num[0..100]; D)int N=100;
int num[N];
9、有以下程序
main()
{ int p[7]={11,13,14,15,16,17,18},i=0,k=0;
while(i< 7&&p[i]%2)
{k=k+p[i];i++;}
printf("%d\n",k);
}
执行后输出结果是
A)58 B)56 C)45 D)24
10、有以下程序
main()
{ int x[8]={8,7,6,5,0,0},*s;
s=x+3;
printf("%d\n",s[2]);
}
执行后输出结果是
A)随机值 B)0 C)5 D)6
11、若有定义:int aa[8];。

则以下表达式中不能代表数组元aa[1]的地址的是
A)&aa[0]+1 B)&aa[1] C)&aa[0]++ D)aa+1
12、以下程序的输出结果是
main()
{ int i, a[10];
for(i=9;i>=0;i--) a[i]=10-i;
printf("%d%d%d",a[2],a[5],a[8]);
}
A)258 B)741 C)852 D)369
13、有如下说明
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
则数值为9的表达式是
A)*p+9 B)*(p+8) C)*p+=9 D)p+8
14、有如下程序
main()
{ int n[5]={0,0,0},i,k=2;
for(i=0;i< k;i++) n[i]=n[i]+1;
printf("%d\n",n[k]);
}
该程序的输出结果是
A)不确定的值 B)2 C)1 D)0
15、若已定义:
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]
16、以下程序的输出结果是
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)21 C)22 D)23
17、以下程序的输出结果是
main()
{ char a[10]={'1','2','3','4','5','6','7','8','9',0},*p; int i;
i=8;
p=a+i;
printf("%s\n",p-3);
}
A)6 B)6789 C)'6' D)789
18、执行以下程序后,y的值是
main()
{ int a[]={2,4,6,8,10};
int y=1,x,*p;
p=&a[1];
for(x=0;x< 3;x++) y + = * (p + x);
printf("%d\n",y); }
A)17 B)18 C)19 D)20
19、阅读下列程序:
main()
{ int n[3],i,j,k;
for(i=0;i< 3;i++) n[i]=0;
k=2;
for(i=0;i< k;i++)
for(j=0;j< k;j++) n[j]=n[i]+1;
printf("%d\n",n[1]); }
下述程序运行后输出结果是
A)2 B)1 C)0 D)3
二、填空题
1、以下程序运行后的输出结果是
main()
{ int p[7]={11,13,14,15,16,17,18};
int i=0,j=0;
while(i<7 && p[i]%2==1) j+=p[i++];
printf("%d\n",j);
}
2、以下程序运行后的输出结果是
main()
{ int i,n[]={0,0,0,0,0};
for(i=1;i<=4;i++)
{ n[i]=n[i-1]*2+1;
printf("%d",n[i]);
} }
3、以下程序输出的是
main()
{ int a[10]={19,23,44,17,37,28,49,36}, *p;
p=a;
printf("%d\n",(p+=3)[3]);
}
一.选择题
1——5 CABDA 6——10 DDBDB 11——15 CCBDD 16——19 BBAD 二.填空
【1】 24
【2】 1 3 7 15
【3】 49。

相关文档
最新文档