c语言二级
Ⅰ c语言二级问题
b=++a*--a等价于如下操作:
//++和--优先级同级且在该表达式中最高,所以从左到右依次执行:++然后执行--
a=a+1;
a=a-1;
//当++和--都执行完后执行*操作
b=a*a;//此时的a经过了如下变化:5->6->5
所以b=5*5=25
Ⅱ C语言二级,麻烦写下过程
这是一个两层的嵌套循环与二维数组的组合问题。
这个代码是存在问题的。只有理解嵌套循环和二维数组的组合使用,就能找出正确答案。
错误的地方最少有一处,其中for(j=0;i<3;j++)肯定不对,应该把i<3改为j<3。
嵌套循环的执行过程:
1. 执行外层循环(以下用i循环来代表外层循环)。
2. 执行内层循环(以下用j循环来代表外层循环)。
3. 执行k+=a[i][j]语句。
4. 回到j循环继续判断,如果条件为真,则继续执行k+=a[i][j]语句;如果为假,则跳出。
5. 回到i循环继续判断,如果条件为真,则继续执行for(j=0;j<3;j++),即j循环;如果为假,则执行printf("%d",k)语句。
总结:
1. 当i循环第1次时(i=0),j循环中共循环了3次(j=0、1、2)
2. 当i循环第2次时(i=1),j循环中共循环了3次(j=0、1、2)
3. 当i循环第3次时(i=2),j循环中共循环了3次(j=0、1、2)
先看循环条件:
外层循环i<3没有问题,循环了3次(i=0、1、2)
内层循环也是i<3就有问题,变成死循环。即无限循环执行k+=a[i][j]语句。
既然这题答案中没有死循环的选项,所以代码肯定有错。
二维数组a[3][3]={1,2,3,4,5,6}:
1. 第一个3是第一维,第二个3是第二维,共9个元素(3×3=9)。
2. 而这里只有6个值,那么剩余3个默认赋值为0。
3. 每一个维度下标都从0开始。
3. 其中:
a[0][0]=1,a[0][1]=2,a[0][2]=3
a[1][0]=4,a[1][1]=5,a[1][2]=6
a[2][0]=0,a[2][1]=0,a[2][2]=0
4. 二维数组常用矩阵来描述:
1 2 3
4 5 6
0 0 0
嵌套循环与二维数组的组合使用:
1. 上面矩阵共3行3列,其中每一行的第一维数字不变,每一列的第二维数字不变。
2. 其中i循环对应第一维,j循环对应第二维。
3. 当i循环第1次时(i=0),j循环中共循环了3次(a[0][0]=1,a[0][1]=2,a[0][2]=3)
4. 当i循环第2次时(i=1),j循环中共循环了3次(a[1][0]=4,a[1][1]=5,a[1][2]=6)
5. 当i循环第3次时(i=2),j循环中共循环了3次(a[2][0]=0,a[2][1]=0,a[2][2]=0)
那么这9个数依次相加赋给变量k,所以变量k的值为21,答案选A。
如果代码还存在错误,那么变量k的值可能会不一样。
理解了嵌套循环与二维数组的组合使用才是重点,答案自然就出来了。
如果还有不明白之处,可随时提问。
Ⅲ C语言二级
首先说明一下
char a = 0 与char a='\0'是一样的
然后看注释
#include<stdio.h>
int disp(char *str)
{
while( *str)//遇到'\0'时结束
putchar(*str++);//str在移动
putchar('#');
return *str;//这时候str指向最后一个字符('\0'),所以返回值为0
}
main()
{
int x;
x = disp("C##123");//字符串参数的最后一个字符时'\0'
printf("%d\n",x);//这里打印了disp的返回值,也就是0
}
Ⅳ 计算机C语言二级
void fun(int *w, int p, int n)
{
int b[N],i,j;
for(i = 0; i <= p;i++)
{
b[i] = w[i]; //将w中的元素存入b中,也就是将数组a中的元素存入b中
}
for(i = 0; p+1+i < n;i++)
{
w[i] = w[p+1+i];
//将从第p+1个到结束(第n个)的元素存入数组w的从第0个到第n-1-p个
}
for(j = 0;j <= p;j++)
{
w[i++] = b[j];
//将b的第0个到第p个元素存入w的第n-p个到第n个中
}
}
Ⅳ C语言2级都考什么
如果你基础不够熟练的话,该加把劲复习了。
下面是复习内容纲要:
C语言二级复习纲要
一、基本知识
1.c是高级语言,结构化程序设计语言
2.程序设计的五个部分
二、变量、常量、表达式
1.常量的值是不能改变的
2.标识符的定义方法
3.c语言中二进制和八进制、十六进制的表示方法
4.算术运算符的优先级别(++和--放在变量前后的区别)
5.c程序的基本构成结构(由函数构成,函数由基本结构构成)
三、顺序结构
1.printf的格式控制串中的格式控制字符和后面的数据在数量上要一一对应,类型要匹配
2.scanf的格式控制串中不要有多余字符,后面的数据是地址,如果是变量,前面要有&(取地址符)
3.两个%代表一个%
4.复合语句以及空语句
四、选择结构
if (表达式) 语句1;
else 语句2;
switch (表达式)
{ case….:……..;
.
.
.
case…:…….;}
1.关系表达式及优先级别
2.逻辑表达式及优先级别
3.关系,逻辑,算术优先级别的问题
4.if后面跟的表达式是判断真假的,switch是计算值的
5.if表达式后只能跟一个语句,如果要跟多个语句,必须用{ }括起来构成复合语句
6.switch里面的语句后面一定要跟break才能跳出switch,否则会一致执行下去
7.if语句中,语句1和语句2两个语句里面只能有一个语句被执行
五、循环结构
1.三种循环结构及其区别(while和do….while多用于循环次数未知的情况,for用于循环次数已知的情况)
2.循环中的三要素:初始值,结束条件,自增语句
3.break和continue的区别
六、字符
1.字符量是用单引号’引起来的一个字符,用双引号”引起来的字符是字符串
2.字符量等同于整形量
3.要使用putchar和getchar这两个函数,就必须在程序的开头使用#include “stdio.h”
4.连续输入
七、函数
1. 函数可以没有返回值,也可以有返回值,但是只能返回一个值,在函数中,一碰到return语句,函数立即结束,返回调用的地方
2. 函数的返回值也是有类型的,函数的首部要加以说明
3. 函数也必须遵循先定义后使用的原则
4. 函数的实际参数和形式参数必须一一对应,类型也要匹配,同时,参数是变量的,只能进行单向传递,即,参数值只能从主函数传递给函数,而不能从函数返回主函数,这种称之为:传值传递
八、指针
1. 存放地址的变量称为指针
2. “*”号在数据定义的时候作为指针定义符,在语句中作为间接引用
3. 指针一定要有指向,不能没有指向,指向空是有意义的]
4. 通过把指针作为函数参数,可以在主函数和函数之间传递数据,称之为:传地址传递
5. 指针每次移动,都移动一个单元,每个单元的长度是由指针的基类型确定的
6. 指向指针的指针是指:这个变量中存放的是指针的地址
7. 函数也可以返回指针,同样,要在函数首部定义
九、数组
1. 数组是一连串连续的存储单元的集合,他们是连续的
2. 把数组传递给函数,并且希望能改变其值,那么在函数的首部,用指针定义参数
3. 二维数组是一维数组的特殊形式,可以把二维数组看成每一个一维数组,每个元素都是一个一维数组。
4. 要把二维数组传递给函数,并且希望能改变其值,那么,在函数的首部,用一个行指针{(*sp)[ ]}来定义参数
5. 行指针和指针数组是不同的
行指针 指针数组
十、字符串
1. 字符串其实就是字符数组,一维字符数组可以存放一行字,而二维字符数组可以存放若干行字
2. 字符串的结束标志是\0,并且包含在字符串长度之内
3. 可以用字符指针指向一个字符串,其实就是指向字符数组的首地址
4. 字符串的输入输出使用puts和gets函数
十一、结构
1. 结构是一种特殊的用户自定义数据类型,他由若干个成员构成
2. 要引用成员,就要看使用什么来引用。用数据的话:结构体变量名.成员名。是指针的话:结构体指针-〉成员名
3. 成员符优先级别问题:高于++ ――
4. 传递结构体变量给函数,并且希望能改变其值,那么把该结构体变量的地址传递给函数,函数用该类型指针来接受结构体
5. 链表:在定义结构体变量的时候,在其中增加指向自己的指针,使得这种结构体变量能够指向同类型结构体变量,由这种变量首尾相连,就能构成链表。
6. 链表的建立、删除节点、增加节点,查找节点都要使用动态内存分配malloc和calloc,区别在于前者动态分配一个单元,而后者动态分配一系列单元
十一、文件
1. 文件的打开方法和打开方式及如何关闭
2. 如何对文件进行输入和输出
3. 文件指针及其操作函数
Ⅵ 计算机二级c语言和计算机二级有什么区别
C和C++的区别不是简简单单可以说清楚的,但是如果LZ想问两种语言2级考试中的区别,我就说一下两种语言2级的考点:
C:主要考察基本变量(包括定义,以及各个基本类型的特点,比如bool,int等),基本语句(if,for,switch等),函数,机构体,联合体,枚举,指针,数组。这些都是编程的基础,相对比较简单;
C++:C中的考点C++有些也会考,不过不是考察的重点,C++主要考察的是:类,类的继承于派生,模板等。相对C的考点,C++的考点要难的多,而且C++的考题大部分是要考察考生对“面向对象”的方法的理解程度的。
不知道这样说你清楚了没,如果还不清楚可以留言给我哈~
Ⅶ c语言二级
#include<stdio.h>
intf(inta[],intn){
if(n>1){
returna[0]+f(a+1,n-1);
}else{
returna[0];
}
}
//f是个递归函数
//n的值变化4321
//aa+2指向数组第三个元素aa[2]也就是3
//第一次s=3+f(aa+2,3)
//第二次s=3+4+f(aa+3,2)
//第三次s=3+4+5+f(aa+4,1)
//第四次s=3+4+5+6返回18
intmain(void){
intaa[10]={1,2,3,4,5,6,7,9,10},s;
s=f(aa+2,4);
printf("%d ",s);
}
// f是个递归函数
// n的值变化 4 3 2 1
// aa+2 指向 数组第三个元素 aa[2]也就是 3
// 第一次 s = 3 + f(aa+2, 3)
// 第二次 s = 3 + 4 + f(aa+3, 2)
// 第三次 s = 3 + 4 + 5 + f(aa+4, 1)
// 第四次 s = 3 + 4 + 5 + 6 返回18
Ⅷ 全国c语言二级
error:
1:#include<stdio.h>
2:gets(c);
3:printf("%s%s%s\n",a,b,c);
最后main前面加上void吧。
我觉得答案应该是E.thisis
Ⅸ 计算机二级(C语言)都考哪些内容
C语言程序设计
(1)单项选择题,40题,40分(含公共基础知识部分10分);
(2)程序填空题,2~3个空,18分;
(3)程序改错题,2~3处错误,18分;
(4)程序设计题,1题,24分。
计算机二级考试是全国计算机等级考试(National Computer Rank Examination,简称NCRE)四个等级中的一个等级,考核计算机基础知识和使用一种高级计算机语言编写程序以及上机调试的基本技能。计算机二级考试采用全国统一命题、统一考试的形式。
(9)c语言二级扩展阅读
时间安排
2018年NCRE将举办三次考试,时间分别为3月24日至26日(第51次)、9月15日至17日(第52次)及12月8日(第53次)。其中3月份和9月份考试开考全部级别全部科目,12月份考试开考一、二级的全部科目。各省级承办机构可根据实际情况决定是否开考12月份考试。
二级考试时间为120分钟;
系统环境:Windows 7、Visual C++2010 学习版(Visual C++ 2010 Express)、Visual Basic6.0、Access2010、NetBeans、My SQL(Community 5.5.16);Visual Studio 2010、MS Office2010、Python3.5.2 版本及以上 IDLE。
考试科目
据了解,教育部考试中心确定从2013年上半年开始,实施无纸化的NCRE,二级6个科目是:二级C,二级VB,二级VFP、二级JAVA、二级ACCESS、二级C++。[3]取消“Delphi语言程序设计”科目(代码:62)。
自2018年3月考试起,NCRE将执行2018版考试大纲,二级取消“Visual FoxPro 数据库程序设计”科目(代码:27),2017年 12 月是其最后一次组考。新增“Python 语言程序设计”科目(代码:66),考试时长:120 分钟,2018 年 9 月首次开考。
Ⅹ c语言二级考试
1、对于计算机二级C语言这个科目,只要肯花功夫准备,认真对待,多练习题目,多思考,多总结,理解了计算机语言的思维,就可以达到比较好的效果。
C语言大多数知识还主要以记忆为主,多看别人写过的程序,逐渐地总结出很多的方法。
2、易错点是那些基础部分。例如一个完整的语句结束时忘了加分号。逗号和分号的用法混淆。复杂程序中漏掉中括号等。这些都是比较基础的知识,但是却很容易忽略。
特别是在改错题中,经常出现这类问题,有时候让你抓破头脑都找不出的错误就是这些基础知识。所以对于这类问题,在改错题中不确定时要运行一下,根据下面的提示找出错误的地方,并加以改正。而且平时要多练、多总结。