综合题集知识点三

以下是备考计算机二级C语言冲刺阶段总结的题集中所含的知识点!踏踏实实弄懂每一个知识点,就稳了。

2020年11月6日星期五
补充:不出所料,一次性顺利通过,虽然还是有点不太满意。可能是自己当时考完太过自信。选择题有两三道涉及的知识点一无所知,另外的可能就是会的但因为粗心做错了,编程题大概率是满分,扣分也可能只是扣在修改题,因为当时做完回想了下好像还有其他答案。


2020年9月1日星期二

有以下程序:

#include
main()
{char c;
for(;(c=getchar())!=’#’;)
{if(c>=’a’&&c<=’z’)c=c-’a’+’A’;
putchar(++c);
}
}

执行时输入:aBcDefG##<回车>,则输出结果是:BCDEFGH

有以下程序:

#include
main()
{char s[]=”012xy\0834f4w2”;
int i,n=0;for(i=0;s[i]!=0;i++)if(s[i]>=’0’&&s[i]<=’9’)n++;
printf(“%d\n”,n);
}

程序运行后输出结果是:3
解释:计算’\0’之前阿拉伯数字的个数。

有以下程序:
char str[4][12]={“aaa”,”bbb”,”ccc”,”ddd”},*p[4];
int i;
for(i=0;i<4;i++)p[i]=str[i];
以下选项中不能正确引用字符的是:A)
A)*p[3]
B)p[3]
C)str[2]
D)*p
解释:
(*p)[3]是指p指向一个二维数组,数组列数为3列,行数不定,如int a[5][3];
p=a;此时p是指向一个5行3列的二维数组指针。
*p[3]是一个指针数组,即p[0],p[1],p[2]分别是一个指针,如int *p[3]; int a[3],b[3],c[3];
p[0]=a;p[1]=b;p[2]=c;
所以A)选项中指针数组p[3]指向的是”ddd”的首地址,*p[3]则是”ddd”首地址里面的值,即字符’d’。

有以下程序:

#include
void fun(int n)
{static int k=0;if(n<0)
{printf(“-”);n=-n;}
k+=n%10;
printf(“%d,”,k);
if(n/10)fun(n/10);
}
main()
{int x=-12;
fun(x);printf(“\n”);
}

程序运行后的输出结果是:-2,3

2020年9月2日星期三

有以下程序:

#include
main()
{int i=1,k=0;
for(;i<6;)
{switch(i%3)
{case 0:k++;
case 1:k++;break;
case 2:k++;continue;
}
i+=1;
}
printf(“%d\n”,k);
}

程序运行的情况是:形成无限循环
解释:对break语句和continue语句的理解。

有以下程序段:

scanf(“%d%d%d”,&a,&b,&c);
if(a<b)a==b;                //该语句无论结果如何不做任何改变
if(a<c)a==c;                //该语句无论结果如何不做任何改变
printf(“%d”,a);

该程序段的功能是:输出a的原始值

以下不能将键盘输入的字符串:This is a string<回车>读入到str中的程序段是:A)
A)char str[80];scanf(“%s”,str);
B)char str[80];int i=0;while((str[i++]=getchar())!=’\n’);str[i]=0;
C)char str[80];gets(str);
D)char str[80],*ps=str;do{scanf(“%c”,ps);}while(ps++!=’\n’)(ps)=0;
解释:A)选项中,在使用scanf函数时要注意,在输入数据时,遇到“空格”,或按“回车”或按“跳格(Tab)”键时该数据认为结束。This后有一个空格,认为数据输入结束,后面的数据不能再读入到str中。

2020年9月5日星期六

软件设计常用的工具有:
1.图形工具:程序流程图、N-S图、PAD图;
2.表格工具:判定表;
3.语言工具:PDL(伪码);

在结构化设计方法中,常用的结构设计工具是结构图。

逻辑数据模型也称数据模型,是面向数据库系统的模型,着重于在数据库系统一级的实现。成熟并大量使用的数据模型有层次模型、网状模型、关系模型和面向对象模型等。

软件的特点:
1.软件是一种逻辑实体,具有抽象性;
2.软件没有明显的制作过程;
3.软件在使用期间不存在磨损、老化问题;
4.软件对硬件和软件具有依赖性;
5.软件复杂性高、成本昂贵;
6.软件开发涉及诸多的社会因素;


扇入指的是调用一个给定模块的模块个数。上图中,第2层模块的扇入均为1,第3层中的功能模块3.1扇入为2,其余为1,故上图中最大扇入为2。

一个算法应该具有以下五个重要特性:
1.有穷性;
2.确定性;
3.输入;
4.输出;
5.可行性;

赋值运算符号具有右结合性质,d=c=b=a=1等效于d=(b=(c=(a=1)))(a、b、c已定义为int型)。

简单算法操作步骤不超过5步。

若有已定义语句:int a,b,c; 且变量已正确赋值,则以下选项中正确的赋值表达式是:A)
A)a=(b=c)+8;
B)(a=b)=c=9;
C)a=(b=/=c)=’A’;(忽略双等号间的斜杠,目的是去掉文章的高亮)
D)a+b=c+1;
解释:赋值运算符左边必须是一个变量,右值可以是变量,也可以是表达式,所以B、D选项错误;C选项中(b==c)是个表达式,值为0或1,将字符’A’赋值给0或1,出现语法错误。

有以下程序:

#include
int k=5;
void f(int *s)
{s=&k;*s=7;
}
main()
{int m=3;
f(&m);
printf(“%d,%d\n”,m,k);
}

函数f()的功能是定义一个整形的指针变量s,指向全局变量k,然后修改s指向地址中的值为7,因此f()函数只是修改全局变量k的值为7,与main()函数中的临时变量m无关,因此最后输出为3,7。

求整形数组元素的最大值和最小值:

#include
main()
{int x[ ]={8,2,6,12,5,15},f1,f2;
int *p=x;
f1=f2=x[0];
for(;p<=x+5;p++)
{if(f1<*p)f1=*p;
if(f2>*p)f2=*p;
}
printf(“%d,%d\n”,f1,f2);
}

有以下程序:

#include
main()
{int x[3][4] = {1,3,5,7,9,11,2,4,6,8,10,12};
int (*p)[4]=x,k=1,m,n=0;for(m=0;m<2;m++)n+=*(*(p+m)+k);printf(“%d\n”,n);
}

其中*(*(p+m)+k)为x[m][k]元素。(*p)[4]是指p指向一个二维数组,数组列数为3列,行数不定。将二维数组x赋给p后,行数为3。

预处理命令通常情况下位于源文件的开头,但也可以写在函数与函数之间。
源程序中凡是以#开始的控制行都是预处理命令行。
一行上只能有一条有效的预处理命令。
预处理命令是在程序正式编译之前被处理的。

宏替换不具有计算功能。
宏替换不具有类型。
宏替换不占用运行时间。
宏名习惯采用大写字母,以便与一般变量区别,但是并没有规定一定要用大写字母。

有以下程序:

#include
struct S
{int x, y;
};
main()
{struct S data[3]={4,3,2,0,8,1};
int i;
for(i=0;i<3;i++)
printf(“%d%d;”,data[i].x,data[i].y>>1);
printf(“\n”);
}

程序运行后输出结果是:41;20;80;
解释:S结构体类型定义一个数组变量data初始化3个结构体元素,分别两两赋值给结构体中的x,y。再对3个结构体元素y值转换成2进制数后右移一位,在对此时x,y值依次进行输出。

文件指针指向的是文件缓冲区,而不是文件本身位置。

2020年9月7日星期一

设栈的存储空间为S(1:50),初始状态为top=51。现经过一系列正常的入栈与退栈操作后,top=20,则栈中的元素为:A)
A)31
B)30
C)21
D)20
解释:栈是一种特殊的线性表,它所有的插入和删除都限定在同一端进行。入栈运算即在栈顶位置插入一个新元素,退栈运算即取出栈顶元素赋予指定变量。栈为空时,栈顶指针top=0,经过入栈和退栈运算,指针始终指向栈顶元素。初始状态为top=51,当top=20时,元素依次存储在单元50:19中,个数为50-19=31。

某二叉树共有400个结点,其中100个度为1的结点,则该二叉树中的叶子节点数为:D)
A)149
B)150
C)151
D)不存在这样的二叉树

数据库系统在其内部分为三级模式:
1.概念模式:是数据库系统中全局数据逻辑结构的描述,全体用户的公共数据视图;
2.内模式:内模式又称物理模式,是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。
3.外模式:外模式也称子模式或者用户模式,是用户的数据视图,也就是用户所能够看见和使用的局部数据的逻辑结构和特征的描述,是与某一应用有关的数据逻辑表示。

VC6平台上规定int型数占4个字节,double型占8字节。

程序模块化的目的是为了降低程序的复杂度,使程序设计、调试和维护等操作简单化,降低程序的复杂度可以提高程序的编制效率和调试效率,每个模块可以复用,提高了程序代码的复用率。

程序的运行效率与程序的算法、实现有关,与程序模块化无关。

以下选项中不能在C语言程序中用作用户标识符的是:A)
A)auto
B)scanf
C)Float
D)_3_14
解释:C语言的标识符是由字母、数字、下划线组成,第一个字符不能是数字,只能是字母或下划线。auto是C语言关键字,不能用作用户标识符;scanf是标准库函数名,可以用作用户标识符,只是在使用该标识符的地方不能包含stdio.h头文件。C语言的标识符区分大小写,Float与关键字float不同。

输出最小宽度如果小于该数的位数,则按实际位数输出;如果大于该数的位数,则用空格补齐。

有以下程序:

#include
main()
{int x=1,y=0;
if(!x)y++;
else if(x==0)if(x)y+=2;
else y+=3;
printf(“%d\n”,y);
}

程序运行后输出结果是:0
解释:因为x=1,!x为0,x==0为false,所以if和else if的判断条件都不满足,程序运行时只执行x,y的初始化语句和printf()函数,打印出y的值为0。

有以下程序:

#include
main()
{int a=7,b=0;
do{b+=a;a-=1;}while(a--);
printf(“%d,%d\n”,b,a);
}

执行后的输出结果是:D)
A)28,0
B)28,1
C)16,0
D)16,-1
解释:b累加的a值分别是7,5,3,1。

以下语句中存在语法错误的是:A)
A)char ss[6][20]; ss[1]=”right?”;
B)char ss[ ][20]={“right?”};
C)char *ss[6]; ss[1]=”right?”;
D)char *ss[ ]={“right?”};
解释:二维数组第一维的大小在初始化时可以不指定,当第一维的大小初始化没有指定时按如下规则确定:若初值个数能被第二维大小整除,所得的商就是第一维的大小,若不能整除,所得的商加1作为第一维的大小。所以B)选项相当于:char ss[1][20]={“right?”};其中ss[0][0]=’r’、ss[0][1]=’i’、一直到ss[0][5]=’?’。C)选项中声明一个字符指针数组ss,ss中每个元素都是字符指针,ss[i]=”right?”相当于将字符串”right?”的首地址赋值给字符指针ss[1]。D)选项声明一个字符指针数组ss,并初始化第一个元素,使它指向字符串”right?”。A)选项定义一个二维字符数组ss,所以ss[1]可看作是一个字符数组,ss[1]=”right?”相当于将一个字符串的首地址赋值给一个字符数组,这是错误的。

有以下程序:

#include
#define MUL1(x,y)x*y
#define MUL2(x,y)(x)*(y)
#define MUL3(x,y)(x*y)
main()
{int m=2,n=3;printf(“%d,%d,%d\n”,MUL1(m,m+n)*2,MUL2(m,m+n)*2,MUL3(m,m+n)*2);
}

程序运行后输出结果是:A)
A)10,20,14
B)20,20,20
C)10,10,10
D)14,14,14
解释:宏定义在程序的预编译阶段直接进行文本替换,所以本题中宏定义展开如下:
MUL1(m,m+n)2=mm+n2=22+3*2=10
MUL2(m,m+n)2=(m)(m+n)2=2(2+3)*2=20
MUL3(m,m+n)2)=(mm+n)2=(22+3)*2=14
宏定义的形参一定要用小括号括起来,以避免出错。

以下关于C语言文件的叙述中正确的是:A)
A)文件由数据序列组成,其类型可以为二进制文件或文本文件;
B)文件由记录序列组成,其类型可以为二进制文件或文本文件;
C)文件由字符序列组成,其类型可以为二进制文件或文本文件;
D)文件由数据序列组成,其类型只能是二进制文件;
解释:C语言文件是指一组相关数据的有序集合,从文件编码方式来看,文件可分为ASCII码文件和二进制文件两种,其中ASCII文件也称为文本文件,所以文件由数据序列组成,类型可以为二进制文件或文本文件。

设有定义语句(假设short int型数据占2字节)
short int *pi,*pj;
pi=pj=(short *)malloc(2);
则以下叙述正确的是:A)
A)pi和pj指向了同一个short int型存储单元;
B)pi和pj指向了2个连续的short int型存储单元的首地址;
C)pi和pj分别指向了一个short int型存储单元
D)pi和pj分别指向了2个short int型存储单元
解释:语句pi=pj=(short )malloc(2);首先使用动态分配函数malloc分配2个字节的内存空间,然后将内存首地址转换为short类型并返回,赋值给pj,再将pj的值赋给pi,所以指针pi和pj的值是相同的,指向同一个short int型的存储单元。

函数fun的功能是:将一副扑克牌编号为1,2,3,…,53,54,以某种特定的方式洗牌,这种方式是将这副牌分成两半,然后将它们交叉,并始终保持编号为1的牌在最上方,譬如第一次这
样洗牌后的结果为:1,28,2,29,…,53,27,54。两次洗牌后的结果为:1,41,28,15,2,42,…,53,40,27,14,54。程序的功能是:输出经过n次洗牌后的结果。

#include  <stdio.h>
void  fun( int  a[55], int  n )
{  int  i, k  ;
/**********found**********/int  b[55];for (i=0; i<n; i++) {  for (k=1; k<= 27; k++) {  b[ 2*k-1 ] = a[k];           //将数组a中前一半元素放入数组b的奇数位置
/**********found**********/b[ 2* k ] = a[k+27];        //将数组a中后一半元素放入数组b的偶数位置}for (k=1; k<=54; k++)          //由于数组b属于函数中的临时变量,所以需要将
/**********found**********/     //数组b的元素依次赋值给数组a。a[k]=b[k];}
}
main( )
{  int  m, a[55],i;for (i=1; i<55; i++)   a[i]= i;printf("请输入洗牌次数 :    ");   scanf("%d", &m);fun(a, m);for (i=1; i<55; i++)   printf("%d,",a[i]);printf("\n");
}

函数fun的功能是:判断输入的任何一个正整数n,是否等于某个连续正整数序列之和。若是,则输出所有可能的序列。否则输出“不能分解”。
例如:当输入100时,输出:
100=9+10+11+12+13+14+15+16
100=18+19+20+21+22

#include   <stdio.h>
void fun( int  n )
{  int  j, b, c, m, flag=0;for (b=1; b<=n/2; b++) {
/**********found**********/m = n;                  //将n赋值给临时变量mc = b;while (m !=0 && m>=c) {/**********found**********/m = m - c;    c++;      //while循环:m(即n)减去连续正整数序列}
/**********found**********/if ( m==0)               //将满足条件的连续正整数输出{  printf("%d=", n);for (j=b; j<c-1; j++)   printf( "%d+", j  );printf("%d\n", j);flag=1;}}if(flag==0)printf("不能分解\n");
}
main()
{  int  n;printf("请输入一个整数 :   ");   scanf("%d", &n);fun(n);
}

后续还有综合题集知识点四、综合题集知识点五

整理不易,对你有帮助的话给个一键三连,谢谢

计算机二级C语言知识点大全,弄懂这些题集所含知识点稳过(三)相关推荐

  1. 计算机二级C语言与专升本编程题(入门级),用函数isprime(x)判断[n,m](n<m)之间所有的素数,并求其和

    题目很明确的已经告诉我们要用函数isprime(x)来判断[n,m]之间的素数.那么我们再重复一遍素数的定义,素数:除了1和他本身以外,不能被任何数整除的数,例如2,3,5,7,11......换言之 ...

  2. 二级c语言笔试试卷题型,计算机二级c语言题型

    计算机二级C语言考试内容单项选择题,40 题,40 分(含公共基础知识部分 10 分);程序填空题,3 小空,18 分;程序改错题,2 个错误,18 分;程序设计题,24 分.计算机二级c语言试题1. ...

  3. c语言掌上通,计算机二级C语言掌上通在哪下载安装?计算机掌上通好用吗?

    计算机二级C语言掌上通在哪下载安装?计算机二级C语言掌上通好用吗?相信很多想要考计算机二级C语言的学生都在努力的复习背题库,而现在只要使用计算机二级C语言掌上通就能够随时随地刷题了. 一.计算机二级C ...

  4. 计算机二级C语言笔记

    计算机二级C语言笔记 这里写目录标题 计算机二级C语言笔记 一.公共基础题 1.存储结构 2.求结点数性质 3.三种遍历方法 4.笛卡尔积等运算 5.范式 6.关系数据模型 7.时间复杂度和最坏情况比 ...

  5. 二级c语言需要知道的知识点,2020年全国计算机二级C语言复习知识点:C语言基本知识(...

    [摘要] 即将参加全国计算机等级考试的考生们,考试即将到来,大家的备考工作进行得如何了?考必过为大家精心整理了2020年全国计算机二级C语言复习知识点:C语言基本知识(,希望能够助力全国计算机等级考试 ...

  6. 计算机c语言知识点txt,计算机二级C语言(重要知识点)

    计算机二级C语言(重要知识点) 本文由jnwsren贡献 ppt文档可能在WAP端浏览体验不佳.建议您优先选择TXT,或下载源文件到本机查看. 授课教师:授课教师:闵芳联系方式:联系方式:153*** ...

  7. 江苏省计算机二级c语言复习知识点,计算机二级C语言知识点复习

    C语言已先后被移植到大.中.小及微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序.下面是小编收集的关于计算机二级C语言知识点复习,希望 ...

  8. 二级c语言会考文件打开,2017计算机二级C语言文件知识点

    2017计算机二级C语言文件知识点 引导语:C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点.以下是百分网小编分享给大家的'2017计算机二级C语言文件知识点,欢迎阅读! ...

  9. 计算机二级常见知识点语言,计算机二级考试语言知识点总结.doc

    计算机二级考试语言知识点总结 计算机二级考试C语言知识点总结 (完全针对考试大纲) 概述 总体上必须清楚的: 1)程序结构是三种: 顺序结构 , 循环结构(三个循环结构), 选择结构(if 和 swi ...

最新文章

  1. Jquery中获取select选中的文本与值
  2. 教AI逐帧搓招玩《铁拳》通关最高难度,现在的街机游戏爱好者有点东西啊
  3. HDU 1236 ( 排名 )
  4. 设计稿生成代码与 Serverless 的前世今生与未来!
  5. ssh协议是tcp还是udp_DNS 支持 TCP 和 UDP 双协议,但为何偏偏只钟情 UDP?
  6. SAP MTA打包的一些常见错误
  7. 机器学习性能评估指标(综合性总结)
  8. Java面向对象(19)--抽象类与抽象方法abstract
  9. 动画函数优化,为任意元素添加任意多个属性
  10. Soul 网关源码阅读(一) 概览
  11. 华为海思智能手机处理器及其参数对比
  12. 软件项目管理课程总结
  13. 5 步教你将 MRS 数据导入 DWS
  14. 在 Windows 中为高级用户配置 IPv6 的指南
  15. 远程协助计算机如何开启,远程协助怎么开
  16. facebook登陆ios
  17. 10gR2--用asmcmd对ASM进行管理
  18. Android DES加密解密
  19. elasticsearch7.1的一些自问自答
  20. CAD打开多个文档只启动一个程序

热门文章

  1. TMS570-1-GIO学习
  2. 招财宝+保本基金的稳健高杠杆玩法
  3. git commit存储
  4. powerdesigner画关系图_「俯首甘为孺子牛」李可染牧牛图赏析
  5. 2022年福田英才荟海归创业港补贴申请指南
  6. 惠普EliteBook-840-G5电脑 Hackintosh 黑苹果efi引导文件
  7. 迷雾:我们是否拥有自己的数据?
  8. linux qos 内核配置,Linux下QOS:应用篇
  9. 关于bootstrap select使用碰到的问题
  10. 荣耀X10 Max体验,大屏爱好者福音来了