-
C语言C 072二维数组.ppt
2020-04-19 10:11:13* (2)若定义int a[3][4],则对a的正确引用是 A) a [ 2 ][ 4 ] B) a [ 1,3] C) a (2(1) D) a [1+1][ 0 ] (1)以下二维数组说明方式中正确的是 A) int a[3][ ]; B) float a(3,4; C) double a[1][4]; D) float a(3(4; ... -
【C语言数组知识点08】题型解析(持续更新中)
2020-04-27 14:58:201. 引用数组元素时, 其数组下标的数据类型允许是 整型常量或...3. 以下能对二维数组a 进行正确初始化的语句是: A) int a[2][]={{1,0,1},{5,2,3}}; B) int a[][3]={{1,2,3},{4,5,6}}; C) int a[2][4]={{1...1. 引用数组元素时, 其数组下标的数据类型允许是 整型常量或整型表达式
2. 一维数组的定义方式为: 类型说明符 数组名 [整型常量表达式]
3. 以下能对二维数组a 进行正确初始化的语句是:
A) int a[2][]={{1,0,1},{5,2,3}};
B) int a[][3]={{1,2,3},{4,5,6}};
C) int a[2][4]={{1,2,3},{4,5},{6}};
D) int a[][3]={{1,0,1},{},{1,1}};
答案:B;A选项列标不可省略;C选项超出了范围;D选项赋初值不可有{}
4. 以下不能对二维数组a 进行正确初始化的语句是
A) int a[2][3]={0};
B) int a[][3]={{1,2},{0}};
C) int a[2][3]={{1,2},{3,4},{5,6}};
D) int a[][3]={1,2,3,4,5,6};
答案:C;超出了范围
5. 若有说明:int a[3][4]; 则全局数组a 中各元素
A) 可在程序的运行阶段得到初值0
B) 可在程序的编译阶段得到初值0
C) 不能得到确定的初值
D) 可在程序的编译或运行阶段得到初值0
答案:B6. 下面程序如果只有一个错误, 那么是(每行程序前面的数字表示行号)
1 main() 2 { 3 float a[3]={3*0}; 4 int i; 5 for(i=0;i<3;i++) scanf(“%d”,&a[i]); 6 for(i=1;i<3;i++) a[0]=a[0]+a[i]; 7 printf(“%d\n”,a[0]); 8 }
答案:第3行;
7. 若二维数组a 有m 列,则计算任一元素a[i][j]在数组中位置的公 式为 (假设a[0][0]位于数组的第一个位置上。)
A)i*m+j
B)j*m+i
C)i*m+j-1
D)i*m+j+1
答案:D
8. 以下对一维数组的定义中不正确的是( )
A. double x[5]={2.0,4.0,6.0,8.0,10.0};
B. int y[5]={0,1,3,5,7,9};
C. char ch1[ ]={'1', '2', '3', '4', '5'};
D. char ch2[ ]={'\x10', '\xa', '\x8'};
答案:解析:可以对一维数组的全部元素或部分元素赋初值。在对全部数组元素初始化时,数组长度可以省略。若数组长度没有省略,则初始化列表中值的个数不能超过数组的长度。
答案:B
9. 以下对二维数组的定义中正确的是( )。
A.int a[4][]={1,2,3,4,5,6}; B. int a[][3];
C.int a[][3]= {1,2,3,4,5,6}; D. int a[][]={{1,2,3},{4,5,6}};
解析:定义二维数组时,若按一维格式初始化,则第一维的长度可以省略,此时,系统可根据初始化列表中值的个数及第二维的长度计算出省略的第一维长度,但无论如何,第二维的长度不能省略。没有初始化时,每一维的长度都不能省略。
答案:C
10. 若有定义:int aa[8];,则不能代表数组元素aa[1]地址的是( ) 。
A. &aa[0]+1 B. &aa[1] C. &aa[0]++ D. aa+1
解析: &aa[1]、&aa[0]+1和aa+1都是数组元素aa[1]的地址。由于&aa[0]是地址值常量,不能进行自加、自减运算,所以选项C不能代表aa[1]地址。
答案:C
11. 若有如下定义,则b的值是( )。
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b=p[5];
A. 5 B. 6 C. 8 D. 9
解析:p指向a[3],即p=a+3;b=p[5],即b=*(p+5)。因此,b=*(a+8)=a[8]=9。
答案:D
12. 若二维数组y有m列,则排在y[i][j]前的元素个数为( )
A.j*m+i B.i*m+j C.i*m+j-1 D.i*m+j+1
解析:C语言中的二维数组按行存储。行标为i的元素前共有i行元素,元素个数为i*m,每行列标为j的元素前共有j个元素。因此,y[i][j]前的元素个数为i*m+j。
答案:B
13. 若有定义:char a[10],*b=a;,则不能给数组a输入字符串”This is a book”的语句是( )。
A. gets(a) B. scanf("%s",a) C. gets(&a[0]); D. gets(b) ;
解析: gets为字符串输入函数,调用该函数时需给出字符串的存储地址,以回车作为字符串输入的结束,并将回车符转换成为’\0’。而scanf函数则以回车、空格或跳格作为串输入结束,因此scanf不能输入有空格的字符串。
答案:B
14. 有以下程序, 执行后输出结果是( )
main()
{ int x[8]={8,7,6,5,0},*s;
s=x+3;
printf("%d ",s[2]);
}
A. 随机值 B. 0 C. 5 D. 6
答案:B
15. 下列描述中不正确的是 ( )。
A. 字符型数组中可以存放字符串
B. 可以对字符型串进行整体输入、输出
C. 可以对整型数组进行整体输入、输出
D. 不能在赋值语句中通过赋值运算符"="对字符型数组进行整体赋值
答案:C;C语言规定只能逐个引用数组元素而不合下次引用整个数组。字符数组的输入、输出可以将整个字符串一次输入或输出。所以,选项C的说法是不正确的。
16. 以下语句或语句组中,能正确进行字符串赋值的是( )。
A. char *sp; *sp="right!"; B. char s[10]; s="right!";
C. char s[10]; *s="right!"; D. char *sp="right!";
答案:D;A char *sp;*sp="right!";不对sp是一个字符指针,然后再*sp就是一个字符的意思,它不可以赋值一个字符串;B char s[10];s="right!";s是一个数组名,数组名不可以赋值.;C char s[10];*s="right!";s是一个数组的首地址,它指向第一个元素.所以*s就是s[0]它也是一个字符,不可以赋值为字符串.其实赋值中,就是字符串赋值比较难;主要注意下字符串的初始化的两种形式char *sp="right!";另外char sp[]="right!";也可以.其他的如果不是初始化,纯赋值,主要是观察左右类型是否一致.不能左边是一个字符或者一个指针,而右边是一个字符串常量.
-
C语言程序设计电子课件——数组.ppt
2020-07-10 18:34:28二二维数组元素的使用 二维数组中元素相当于一个变量,我们可以象使用一个变量那样使用二维数组元素...a[1,3] C) a(5) D) a [10-10] 三二维数组的初始化 采用以下两种方法之一进行 1.类型说明符 数组名[行数][列数]={{数 -
你必须知道的495个C语言问题
2015-10-16 14:14:286.18 当我向一个接受指针的指针的函数传入二维数组的时候,编译器报错了。 6.19 我怎样编写接受编译时宽度未知的二维数组的函数? 6.20 我怎样在函数参数传递时混用静态和动态多维数组? 数组的大小 6.21 当数组... -
你必须知道的495个C语言问题(高清版)
2010-03-31 16:24:091.24 我在一个文件中定义了一个extern数组,然后在另一个文件中使用,为什么sizeof取不到数组的大小? 13 声明问题 14 1.25 函数只定义了一次,调用了一次,但编译器提示非法重声明了。 14 *1.26 main的正确... -
《你必须知道的495个C语言问题》
2010-03-20 16:41:181.24 我在一个文件中定义了一个extern数组,然后在另一个文件中使用,为什么sizeof取不到数组的大小? 13 声明问题 14 1.25 函数只定义了一次,调用了一次,但编译器提示非法重声明了。 14 *1.26 main的正确... -
题海拾贝No.2|LinuxC语言小题目集锦
2021-01-08 00:03:22LinuxC语言小题目题目部分答案分析题1题2题3题4题7题8题9 题目 整型变量x和y的值相等,且为非0值,则以下选项中,结果为0的表达式是 。 A、x||y B、x|y C、x&...以下对二维数组a的正确说明是 。题目
-
整型变量x和y的值相等,且为非0值,则以下选项中,结果为0的表达式是 。
A、x||y
B、x|y
C、x&y
D、x^y -
结合所学知识,思考死循环怎么写?有几种写法?简单编写,伪代码实现。
-
若已定义 char s[10]; 则在下面表达式中不表示s[1]的地址的是 。
A、s+1
B、s++
C、&s[0]+1
D.&s[1] -
以下对二维数组a的正确说明是 。
A、int a[ ][3]={ 0 };
B、int a[3][ ]={ {1},{2},{3} };
C、int a[1][3]={ 1,2,3,4 };
D、int a[2][3]={ {1,2},{3,4},{5,6} }; -
以下程序的功能是将字符串s中所有的字符c删除,那么空白处缺少的语句为:( )。
#include <stdio.h>
int main(void)
{
char s[80];
int i, j;
gets(s);
for( i=j=0; s[i] != ‘\0’; i++ ){
if ( s[i] != ‘c’ ){
______________;
}
}
s[j] = ‘\0’;
puts( s );
return 0;
}
A.s[j++] = s[i];
B.s[++j] = s[i];
C.s[j] = s[i]; j++;
D.s[j] = s[i]; -
下面代码的功能是( )。
char x[] = “chaungke”;
char*y=x;
while(*y != ‘\0’)
{
y++;
}
printf(“%d”, y-x-1);
A. 求字符串的长度
B. 比较两个字符串的大小
C. 将字符串x复制到字符串y
D.将字符串x连接到字符串y后面 -
假定在32位机中,定义char a[20];char *p = a;那么sizeof(a),sizeof§输出的值是( C )
A) 20,1 B) 80,4 C) 20, 4 D)40, 2 -
若有定义int i=2,a[10],p=&a[i];则与p++ 等价的是 。
A、a[i++]
B、a[i]++
C、a[i]
D、a[++i] -
将以下代码填充,看看你会几个?
int main(){
char a = 10;
char p = &a;
/ 打印a变量存储的值 /
/ 打印a变量存储空间的首地址 /
/ 打印p变量存储的值,打印地址格式用%p /
/ 打印p变量存储空间的首地址*/
/* 打印p指向的存储空间中存储的值 /
/ 使用所有可以表示a数据值的打印方法 /
/ 使用所有可以表示a存储空间首地址的打印方法 */
return 0;
} -
有定义int k=2,*p1,*p2;且p1与p2均已指向变量k,下面不能执行的语句是()
A. k=*p1+*p2;
B. p2=k;
C. p1=p2;
D. k=p1(*p2);
部分答案分析
题1
这个符号是异或的意思,比较的两个变量x和y不管值是多少,相等异或为0,不等异或为1。
题2
while(1);
do{}while(1);
for(;1;){};
tip: goto tip;
题3
s是个常量地址,所以不能自增去改变,语法错误;但可以进行数组值偏移来实现,所以s+1是对的,相当与首地址+1;因为是char型,所以偏移一个单位就是偏移1,如果是int型则是偏移4了,这里要注意。
题4
二维数组里规定,可以省略行但不能省略列
题7
题8
++ 和 * 符号等级是一样的,而且结合方向是从右到左,还有一个关键点是,指针自增而不是值自增。
题9
-
-
c++指针问题
2016-05-23 21:41:17以下四种说法中,正确的一项是( )。 A.C++允许在字符串上进行整体操作 B.语句:char vn []="Brown"; 将vn 定义成一个有5个元素的数组,因为"Brown" 中含有5个字符 C.对指针只要赋给一个地址值就可以了 D.一维的...以下四种说法中,正确的一项是( )。 A.C++允许在字符串上进行整体操作 B.语句:char vn []="Brown"; 将vn 定义成一个有5个元素的数组,因为"Brown" 中含有5个字符 C.对指针只要赋给一个地址值就可以了
D.一维的指针数组实际上是一个二维数组
char vn[]="Brown" 有5个元素,但是会自动追加‘\0' 表示字符串的终结。其实有6个长度。 指针是个变量 有数组类型的。 一维指针数组就是一个数组 里面的元素都是指针罢了,没有说什么2维的。
C++有的string类,你可以直接进行字符串级的操作如加操作。 string first_str = string("abc"); string sec_str = string("def"); string third_str = first_str + sec_str ;//字符串拼接。
-
C语言程序设计标准教程
2009-05-22 18:43:58这里应说明的是并不是把整个字符串装入指针变量, 而是把存放该字符串的字符数组的首地址装入指针变量。 在后面还将详细介绍。 ⑥把函数的入口地址赋予指向函数的指针变量。例如: int (*pf)();pf=f; /*f为函数名*... -
excel的使用
2012-11-25 17:06:01(1)数组和矩阵的定义矩阵不是一个数,而是一个数组。在Excel里,数组占用一片单元域,单元域用大括号表示,例如{A1:C3},以便和普通单元域A1:C3相区别。设置时先选定单元域,同时按Shift+Ctrl+Enter键,大括弧... -
计算机二级公共基础知识
2011-04-30 14:00:09例如,在一维数组[21,46,24,99,57,77,86]中,查找数据元素99,首先从第1个元素21开始进行比较,比较结果与要查找的数据不相等,接着与第2个元素46进行比较,以此类推,当进行到与第4个元素比较时,它们相等,... -
二叉排序树与平衡二叉树的实现
2010-12-26 15:25:311.2.1 一维数组的存储结构 建立二插排序树,首先用一个一维数组记录下读入的数据,然后再用边查找边插入的方式将数据一一对应放在完全二叉树相应的位置,为空的树结点用“0” 补齐。 1.2.2 建立二叉排序树 二叉... -
你必须知道的495个C语言问题(PDF)
2009-09-15 10:25:473, 有的为4, 哪个是正确的? . . . . . . . . . . . . . . . . . . . . . 14 3.4 这是个巧妙的表达式: a ˆ= b ˆ= a ˆ= b 它不需要临时变量就可 以交换a 和b 的值。. . . . . . . . . . . . . . . . . . . . . . .... -
计算机二级C语言考试题预测
2010-06-08 18:29:34(18) 下述关于数据库系统的叙述中正确的是(A) A. 数据库系统减少了数据冗余 B. 数据库系统避免了一切冗余 C. 数据库系统中数据的一致性是指数据类型的一致 D. 数据库系统比文件系统能管理更多的数据 (19) 关系表中的... -
VC++科学计算器的设计V1_4Beta.rar
2010-03-23 04:54:59有效性的要求还必须在程序执行中对按照某种运算规则解释的源输入表达式数据流的正确性给出相应的反馈信息。例如,如果源输入表达式书写错误,并且这种错误解释器内核不能给出自动的纠正策略,则应该报错而立即终止... -
javascript入门笔记
2018-05-15 15:01:07Javascript,简称为 JS,是一款能够运行在 JS解释器/引擎 中的脚本语言 JS解释器/引擎 是JS的运行环境: 1、独立安装的JS解释器 - NodeJS 2、嵌入在浏览器中的JS解释器 JS的发展史: 1、1992年 Nombas 开发... -
C语言FAQ 常见问题列表
2010-10-28 16:41:29o 7.15 当我向一个接受指针的指针的函数传入二维数组的时候, 编译器报错了。 o 7.16 我怎样编写接受编译时宽度未知的二维数组的函数 ? o 7.17 我怎样在函数参数传递时混用静态和动态多维数组 ? o 7.18 当数组... -
数据结构(C++)有关练习题
2008-01-02 11:27:18内容及步骤: 1、 设有一个线性表(e0,e1,e2,e3,…,en-2,en-1)存放在一个一维数组A[arraySize]中的前n个数组元素位置。请编写一个函数将这个线性表原地逆置,即将数组的前n个原地址内容置换为(en-1,en-2,…,e3,... -
上海电机学院C语言实训答案
2012-01-22 15:28:32(10)编写一个程序实现如下功能:调用名为tj的函数,求一个二维数组中正数、负数的代数和,以及零的个数。 (11)编写一个程序实现如下功能:调用一个名为gm的函数,该函数实现简单的加密。加密方法如下:先定义... -
C++复习资料之系列
2008-12-30 21:35:45在下列选项中错误的是( c )。 (a) if(x == y)i++; (b) if(x = y)i--; (c) if( xy )i--; (d) if( x+y )i++; 2.设有函数关系为y= ,下面选项中能正确表示上述关系为( c )。 (a) y = 1; (b) ... -
php高级开发教程说明
2008-11-27 11:39:22出重要的部分,然后把这些部分译成正确的代码。这个分析过程分两步执行:形式分析和逻辑 分析。首先通过检查文章的可视结构来执行形式分析,例如:检查段落、行、列甚至词之间的 空隙。这一过程打破了对文章的整体... -
JAVA上百实例源码以及开源项目源代码
2018-12-11 17:07:42设定字符串为“张三,你好,我是李四” 产生张三的密钥对(keyPairZhang) 张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节 通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到张三编码后... -
JAVA上百实例源码以及开源项目
2016-01-03 17:37:40通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥,通常应对私钥加密后再保存、如何从... -
《数据结构 1800题》
2012-12-27 16:52:0317.以下属于逻辑结构的是(C )。【西安电子科技大学应用 2001一、1】 A.顺序表 B. 哈希表 C.有序表 D. 单链表 二、判断题 1. 数据元素是数据的最小单位。( ) 【北京邮电大学 1998 一、1(2分)】【青岛大学 ... -
ASP.NET精品课程+源代码
2009-01-05 20:15:51 掌握常用的超文本标记语言和语法,以及网页中各种对象的定义和应用; 掌握ASP.NET的各类控件基本知识与应用; 掌握常用的Web窗体的设计方法; 掌握配置ASP.NET应用程序的方法; 掌握网站建设的总体... -
ExtAspNet_v2.3.2_dll
2010-09-29 14:37:08-修正IE7下不能以下划线作为CSS中类名的前缀的BUG(feedback:Steve.Wei)。 -添加定时器控件Timer,用来定时发起AJAX请求。 +2009-09-06 v2.1.0 -Button的Pressed属性值能够正确的反映客户端的变化。 -优化...
-
CentOS 7.8安装Java8
-
完美配置CentOS+Nginx+MySQL+PHP(LNMP)网站环境
-
用nodejs抓取-源码
-
2019年上半年 网络工程师 上午试卷 综合知识 软考真题【含答案和答案解析】
-
path.js:39 throw new ERR_INVALID_ARG_TYPE(‘path‘, ‘string‘, path);
-
【CTF资料-0x0002】简易Linux堆利用入门教程by arttnba3
-
C笔记-源码
-
宏宇社:国外lead入门教程(四)lead任务必备软件
-
Flutter布局详解
-
FTP 文件传输服务
-
2011年上半年 信息系统监理师 上午试卷 综合知识 软考真题【含答案和答案解析】
-
沿RF锁相辅助的光纤环路链路上任意中间点的精确时延感测和工作台频率分配
-
2019年下半年 信息系统监理师 上午试卷 综合知识 软考真题【含答案和答案解析】
-
虚幻4引擎基础
-
2014年下半年 信息系统监理师 上午试卷 综合知识 软考真题【含答案和答案解析】
-
2011年上半年 信息系统管理工程师 上午试卷 综合知识 软考真题【含答案和答案解析】
-
2017年上半年 信息系统监理师 上午试卷 综合知识 软考真题【含答案和答案解析】
-
2019年上半年 信息系统监理师 上午试卷 综合知识 软考真题【含答案和答案解析】
-
Liunx 优化思路与实操步骤
-
深入剖析 ConcurrentHashMap