二级C语言-177
- 格式:doc
- 大小:7.65 KB
- 文档页数:4
c语言二级考试试题及答案C语言二级考试试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言中数组的描述,正确的是:A. 数组名是一个变量名B. 数组名是一个常量C. 数组名是一个指针D. 数组名是一个函数答案:B2. 以下哪个是C语言中的合法变量名?A. 2variableB. variable-nameC. variable_nameD. variable name答案:C3. 在C语言中,以下哪个是正确的字符串字面量?A. "Hello World"B. 'Hello World'C. "Hello World" + "Hello World"D. "Hello\nWorld"答案:D4. C语言中,以下哪个不是标准输入输出库函数?A. printf()B. scanf()C. getchar()D. puts()答案:C5. 下列哪个是C语言中的条件语句?A. ifB. switchC. forD. while答案:A6. C语言中,以下哪个是正确的函数定义?A. int function_name(int x, int y) { /* ... */ }B. int function_name(int x, int y);C. int function_name(int x, y) { /* ... */ }D. int function_name(int x; int y) { /* ... */ }答案:A7. 在C语言中,以下哪个是正确的递归函数调用?A. function_name(x)B. function_name(x, y)C. function_name(function_name(x))D. function_name(&x)答案:C8. 在C语言中,以下哪个是正确的结构体定义?A. struct person { int age; char name[50]; };B. struct person { int age; char name[50] }C. struct person { int age; char name[50]; }D. struct person { int age; char name[50] } person;答案:A9. 在C语言中,以下哪个是正确的指针声明?A. int *ptr;B. int ptr*;C. *int ptr;D. int * ptr;答案:A10. 下列哪个是C语言中的位运算符?A. &&B. ||C. &D. ++答案:C二、填空题(每题2分,共10分)1. C语言中,使用________运算符可以实现两个整数的按位与操作。
计算机⼆级C语⾔基础知识C语⾔程序的结构认识⽤⼀个简单的c程序例⼦,介绍c语⾔的基本构成、格式、以及良好的书写风格,使⼩伙伴对c语⾔有个初步认识。
例1:计算两个整数之和的c程序:#include main() {int a,b,sum; /*定义变量a,b,sum为整型变量*/a=20; /*把整数20赋值给整型变量a*/b=15; /*把整数15赋值给整型变量b*/sum=a+b; /*把两个数之和赋值给整型变量sum*/printf(“a=%d,b=%d,sum=%d\n”,a,b,sum); /*把计算结果输出到显⽰屏上*/ }重点说明:1、任何⼀个c语⾔程序都必须包括以下格式:main() { }这是c语⾔的基本结构,任何⼀个程序都必须包含这个结构。
括号内可以不写任何内容,那么该程序将不执⾏任何结果。
2、main()----在c语⾔中称之为“主函数”,⼀个c程序有且仅有⼀个main函数,任何⼀个c 程序总是从main函数开始执⾏,main 函数后⾯的⼀对圆括号不能省略。
3、被⼤括号{ }括起来的内容称为main函数的函数体,这部分内容就是计算机要执⾏的内容。
4、在{ }⾥⾯每⼀句话后⾯都有⼀个分号(;),在c语⾔中,我们把以⼀个分号结尾的⼀句话叫做⼀个c语⾔的语句,分号是语句结束的标志。
5、printf(“a=%d,b=%d,sum=%d\n”,a,b,sum); ----通过执⾏这条c语⾔系统提供给我们直接使⽤的屏幕输出函数,⽤户即可看到运⾏结果,本程序运⾏后,将在显⽰器上显⽰如下结果:a=20,b=15,sum=356、#include注意:(1)以#号开头(2)不以分号结尾这⼀⾏没有分号,所以不是语句,在c语⾔中称之为命令⾏,或者叫做“预编译处理命令”。
7、程序中以/*开头并且以*/结尾的部分表⽰程序的注释部分,注释可以添加在程序的任何位置,为了提⾼程序的可读性⽽添加,但计算机在执⾏主函数内容时完全忽略注释部分,换⽽⾔之就是计算机当做注释部分不存在于主函数中。
青少年软件编程(C语言)等级考试试卷(二级)分数:100 题数:5一、编程题(共5题,共100分)1.满足条件的数的累加2现有n个整数,将其中个位数为k的数进行累加求和。
时间限制:1000内存限制:65536输入第一行1个整数n。
(0 < n < 1000)第二行n个非负整数,以空格分隔,每个数不大于100000。
第三行1个整数k。
(0 ≤ k ≤ 9)输出输出满足题目要求的累加和。
样例输入样例输出试题编号:20240323-2-01试题类型:编程题标准答案:试题难度:一般试题解析:展示地址:点击浏览考生答案:#include<bits/stdc++.h>using namespace std;int main(){int n;cin>>n;int a[n+1];for(int i=1;i<=n;i++){cin>>a[i];int k;cin>>k;int sum=0;for(int i=1;i<=n;i++){if(a[i]%10==k){sum+=a[i];}}cout<<sum;return 0;}考生得分:20是否评分:已评分评价描述:2.统一文件名小A在命名文件的时候经常不注意大小写,格式比较混乱。
现要求你写一个程序将目录下的文件统一规范的格式,即文件名的第一个字符如果是字母要大写,其他字母小写。
如将Test、test整理成Test。
时间限制:1000内存限制:65536输入第一行一个数字n,表示有n个文件名要统一,n不超过100。
接下来n行,每行一个单词,长度不超过20,表示文件的名字。
文件名由字母、数字和-组成。
输出n行,每行一个单词,对应统一后的文件名。
样例输入样例输出试题编号:20240323-2-02试题类型:编程题标准答案:试题难度:一般试题解析:展示地址:点击浏览考生答案:(此题已作答)考生得分:0是否评分:已评分评价描述:b杯“Lab杯”乒乓球赛就要在PKU的实验室之间举行了。
计算机二级《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语言程序设计(考试时间90分钟,满分100分)一、选择题((1)—(10)、(21)—(40)每题2分,(11)—(20)每题1分,共70分)(1)下列数据结构中,属于非线性结构的是A)循环队列B) 带链队列C) 二叉树D)带链栈(2)下列数据结果中,能够按照“先进后出”原则存取数据的是A) 循环队列B) 栈C)队列D)二叉树(3)对于循环队列,下列叙述中正确的是A)队头指针是固定不变的B)队头指针一定大于队尾指针C)队头指针一定小于队尾指针D)队头指针可以大于队尾指针,也可以小于队尾指针(4)算法的空间复杂度是指A)算法在执行过程中所需要的计算机存储空间B)算法所处理的数据量C)算法程序中的语句或指令条数D)算法在执行过程中所需要的临时工作单元数(5)软件设计中划分模块的一个准则是A) 低内聚低耦合B) 高内聚低耦合C) 低内聚高耦合D) 高内聚高耦合(6)下列选项中不属于结构化程序设计原则的是A) 可封装D) 自顶向下C) 模块化D) 逐步求精(7)软件详细设计产生的图如下:该图是A) N-S图B) PAD图C) 程序流程图D) E-R图(8)数据库管理系统是A)操作系统的一部分B) 在操作系统支持下的系统软件C) 一种编译系统D) 一种操作系统(9)在E-R图中,用来表示实体联系的图形是A) 椭圆图B) 矩形C) 菱形D) 三角形(10)有三个关系R,S和T如下:其中关系T由关系R和S通过某种操作得到,该操作为A) 选择B) 投影C) 交D) 并(11)以下叙述中正确的是A)程序设计的任务就是编写程序代码并上机调试B)程序设计的任务就是确定所用数据结构C)程序设计的任务就是确定所用算法D)以上三种说法都不完整(12)以下选项中,能用作用户标识符的是A)voidB)8_8C)_0_D)unsigned(13)阅读以下程序#includemain(){ int case; float printF;printf(“请输入2个数:”);scanf(“%d %f”,&case,&pjrintF);printf(“%d %f\n”,case,printF);}该程序编译时产生错误,其出错原因是A)定义语句出错,case是关键字,不能用作用户自定义标识符B)定义语句出错,printF不能用作用户自定义标识符C)定义语句无错,scanf不能作为输入函数使用D)定义语句无错,printf不能输出case的值(14)表达式:(int)((double)9/2)-(9)%2的值是A)0B)3C)4D)5(15)若有定义语句:int x=10;,则表达式x-=x+x的值为A)-20B)-10C)0D)10(16)有以下程序#includemain(){ int a=1,b=0;printf(“%d,”,b=a+b);printf(“%d\n”,a=2*b);}程序运行后的输出结果是A)0,0C)3,2D)1,217)设有定义:int a=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是A)if(a>b) c=a,a=b,b=c;B)if(a>b) {c=a,a=b,b=c;}C)if(a>b) c=a;a=b;b=c;D)if(a>b) {c=a;a=b;b=c;}(18)有以下程序#includemain(){ int c=0,k;for (k=1;k<3;k++)switch (k){ default: c+=kcase 2: c++;break;case 4: c+=2;break;}printf(“%d\n”,c);}程序运行后的输出结果是A)3B)5C)7D)9(19)以下程序段中,与语句:k=a>b?(b>c?1:0):0;功能相同的是A)if((a>b)&&(b>c)) k=1;else k=0;B)if((a>b)||(b>c) k=1;else k=0;C)if(a<=b) k=0;else if(b<=c) k=1;D)if(a>b) k=1;else if(b>c) k=1;else k=0;20)有以下程序#include{ char s[]={“012xy”};int i,n=0;for(i=0;s[i]!=0;i++)if(s[i]>=’a’&&s[i]<=’z’) n++;printf(“%d\n”,n);}程序运行后的输出结果是A)0B)2C)3D)5(21)有以下程序#includemain(){ int n=2,k=0;while(k++&&n++>2);printf(“%d %d\n”,k,n);}程序运行后的输出结果是A)0 2B)1 3C)5 7D)1 2(22)有以下定义语句,编译时会出现编译错误的是A)char a=’a’;B)char a=’\n’;C)char a=’aa’;D)char a=’\x2d’;(23)有以下程序#includemain(){ char c1,c2;c1=’A’+’8’-‘4’;c2=’A’+’8’-‘5’;printf(“%c,%d\n”,c1,c2);}已知字母A的ASCII码为65,程序运行后的输出结果是A)E,68C)E,DD)输出无定值(24)有以下程序#includevoid fun(int p){ int d=2;p=d++; printf(“%d”,p);}main(){ int a=1;fun(a); printf(“%d\n”,a);}程序运行后的输出结果是A)32B)12C)21D)22(25)以下函数findmax拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能#define MIN -2147483647int findmax (int x[],int n){ int i,max;for(i=0;i<N;I++)< p="" />{ max=MIN;if(maxreturn max;}造成错误的原因是A)定义语句int i,max;中max未赋初值B)赋值语句max=MIN;中,不应给max赋MIN值C)语句if(maxD)赋值语句max=MIN;放错了位置(26)有以下程序#includemain(){ int m=1,n=2,*p=&m,*q=&n,*r;r=p;p=q;q=r;printf(“%d,%d,%d,%d\n”,m,n,*p,*q);}程序运行后的输出结果是A)1,2,1,2B)1,2,2,1C)2,1,2,1D)2,1,1,2(27)若有定义语句:int a[4][10],*p,*q[4];且0≤i<4,则错误的赋值是A)p=aB)q[i]=a[i]C)p=a[i]D)p=&a[2][1](28)有以下程序#include#includemain(){ char str[ ][20]={“One*World”, “One*Dream!”},*p=str[1];printf(“%d,”,strlen(p));printf(“%s\n”,p);}程序运行后的输出结果是A)9,One*WorldB)9,One*DreamC)10,One*DreamD)10,One*World(29)有以下程序#includemain(){ int a[ ]={2,3,5,4},i;for(i=0;i<4;i++)switch(i%2){ case 0:switch(a[i]%2){case 0:a[i]++;break;case 1:a[i]--;}break;case 1:a[i[=0;}for(i=0;i<4;i++) printf(“%d”,a[i]); printf(“\n”);}A)3 3 4 4B)2 0 5 0C)3 0 4 0D)0 3 0 4(30)有以下程序#include#includemain(){ char a[10]=”abcd”;printf(“%d,%d\n”,strlen(a),sizeof(a));}程序运行后的输出结果是A)7,4B)4,10C)8,8D)10,10(31)下面是有关C语言字符数组的描述,其中错误的是A)不可以用赋值语句给字符数组名赋字符串B)可以用输入语句把字符串整体输入给字符数组C)字符数组中的内容不一定是字符串D)字符数组只能存放字符串(32)下列函数的功能是fun(char * a,char * b){ while((*b=*a)!=’\0’) {a++,b++;} }A)将a所指字符串赋给b所指空间B)使指针b指向a所指字符串C)将a所指字符串和b所指字符串进行比较D)检查a和b所指字符串中是否有’\0’(33)设有以下函数void fun(int n,char * s) {……}则下面对函数指针的定义和赋值均是正确的是A)void (*pf)(); pf=fun;B)viod *pf(); pf=fun;C)void *pf(); *pf=fun;D)void (*pf)(int,char);pf=&fun;(34)有以下程序#includeint f(int n);main(){ int a=3,s;s=f(a);s=s+f(a);printf(“%d\n”,s);}int f(int n){ static int a=1;n+=a++;return n;}程序运行以后的输出结果是A)7B)8C)9D)10(35)有以下程序#include#define f(x) x*x*xmain(){ int a=3,s,t;s=f(a+1);t=f((a+1));printf(“%d,%d\n’,s,t);}程序运行后的输出结果是A)10,64B)10,10C)64,10D)64,64(36)下面结构体的定义语句中,错误的是A)struct ord {int x;int y;int z;}; struct ord a;B)struct ord {int x;int y;int z;} struct ord a;C)struct ord {int x;int y;int z;} a;D)struct {int x;int y;int z;} a;(37)设有定义:char *c;,以下选项中能够使字符型指针c正确指向一个字符串的是A)char str[ ]=”string”;c=str;B)scanf(“%s”,c);C)c=getchar();D)*c=”string”;(38)有以下程序#include#includestruct A{ int a; char b[10]; double c;};struct A f(struct A t);main(){ struct A a={1001,”ZhangDa”,1098.0};a=f(a);jprintf(“%d,%s,%6.1f\n”,a.a,a.b,a.c);}struct A f(struct A t)( t.a=1002;strcpy(t.b,”ChangRong”);t.c=1202.0;return t; )程序运行后的输出结果是A)1001,ZhangDa,1098.0B)1001,ZhangDa,1202.0C)1001,ChangRong,1098.0D)1001,ChangRong,1202.0(39)若有以下程序段int r=8;printf(“%d\n”,r>>1);输出结果是A)16B)8C)4D)2(40)下列关于C语言文件的叙述中正确的是A)文件由一系列数据依次排列组成,只能构成二进制文件B)文件由结构序列组成,可以构成二进制文件或文本文件C)文件由数据序列组成,可以构成二进制文件或文本文件D)文件由字符序列组成,其类型只能是文本文件二、填空题(每空2分,共30分)(1)某二叉树有5个度为2的结点以及3个度为1的结点,则该二叉树中共有【1】个结点。
全国计算机二级c语言计算机二级c语言考试是全国各地计算机专业学生必须参加的一项考试。
C语言是一种广泛使用的高级编程语言,被广泛应用于机器控制、嵌入式系统、编译器、操作系统等领域。
掌握C语言对于学习计算机专业或从事计算机相关工作的人来说非常重要。
下面将详细介绍关于计算机二级c语言考试内容、难点与备考技巧。
一、计算机二级c语言考试内容计算机二级c语言考试内容主要包括以下几个方面:1. C语言基础知识C语言基础知识包括数据类型、变量、常量、运算符、流程控制语句、函数等。
需要掌握C语言中各种数据类型的定义和使用,包括int、float、double、char、short等。
同时,还需要掌握变量、常量的定义和使用方法,例如如何定义整型变量、字符型变量、浮点型变量等。
此外,还需要了解C语言中的运算符、流程控制语句及函数的相关知识。
2. 数组和指针数组和指针是C语言中重要的概念和内容。
需要掌握数组的定义方法、数组的初始化和访问等内容。
需要了解C语言中指针的定义和使用方法,包括指针的类型、指针变量的定义、指针的运算符和指针的使用。
3. 结构体和文件操作结构体是C语言中一个重要的数据类型,用于组织不同类型的数据。
需要了解结构体的定义和使用方法,包括结构体类型的定义、结构体变量的定义和结构体数组的使用。
文件操作也是C语言中重要的内容之一,需要掌握文件的打开、读、写和关闭操作。
二、难点对于C语言初学者来说,最大的困难就在于掌握C语言语法和基本编程思想。
以下是一些学习C语言时常见的难点:1. 指针和数组指针和数组是C语言中比较困难的概念,需要花费大量的时间来学习和掌握。
指针的使用需要了解指针变量和指针运算符的概念,掌握指针变量和数组之间关系的技巧。
数组的使用需要掌握数组的定义、初始化、访问方法以及数组在函数中的传递等。
2. 递归函数递归函数在C语言中是一种常见的编程技巧,但对于初学者来说很难理解。
递归函数的调用方式和普通函数的调用方式不同,需要注意递归函数中的出口条件,防止进入死循环。
全国c语言二级考试真题及答案一、选择题(每题2分,共40分)1. 下列哪个选项是C语言中的合法标识符?A. 2variableB. variable2C. variable-2D. variable$2答案:B2. C语言中,以下哪个关键字用于声明一个函数?A. intB. floatC. voidD. function答案:C3. 在C语言中,哪个运算符用于比较两个值是否不相等?A. ==B. !=C. =D. <=答案:B4. C语言中,哪个函数用于计算并返回一个数的平方根?A. sqrt()B. square()C. root()D. pow()答案:A5. 下列哪个选项是C语言中的正确定义一个整型数组?A. int array[5] = {1, 2, 3, 4, 5};B. int array[] = {1, 2, 3, 4, 5};C. int array[5] = {1, 2, 3};D. int array = {1, 2, 3, 4, 5};答案:B6. C语言中,以下哪个选项表示逻辑与运算?A. &&B. ||C. !D. %答案:A7. 在C语言中,哪个关键字用于声明一个结构体?A. structB. unionC. enumD. typedef答案:A8. 在C语言中,哪个函数用于将字符串复制到另一个字符串?A. strcpy()B. strncpy()C. strcat()D. strcmp()答案:A9. C语言中,哪个关键字用于声明一个指针?A. pointerB. ptrC. *D. ref答案:C10. 在C语言中,哪个函数用于将浮点数转换为字符串?A. sprintf()B. printf()C. scanf()D. atoi()答案:A11. C语言中,以下哪个选项是正确的文件打开模式?A. "r"B. "w"C. "a"D. "b"答案:A12. 在C语言中,哪个函数用于动态分配内存?A. malloc()B. calloc()C. realloc()D. free()答案:A13. C语言中,哪个关键字用于声明一个全局变量?A. globalB. externC. staticD. auto答案:B14. 在C语言中,哪个函数用于获取当前时间?A. time()B. date()C. localtime()D. mktime()答案:A15. C语言中,以下哪个选项是正确的位运算符?A. &B. |C. ^D. ~答案:D16. 在C语言中,哪个函数用于格式化输出?A. printf()B. scanf()C. fprintf()D. sprintf()答案:A17. C语言中,哪个关键字用于声明一个静态变量?A. staticB. externC. autoD. register答案:A18. 在C语言中,哪个函数用于计算两个数的最大公约数?A. max()B. gcd()C. pow()D. sqrt()答案:B19. C语言中,以下哪个选项是正确的递归函数定义?A. void factorial(int n) { if (n == 0) return 1; return n * factorial(n-1); }B. int factorial(int n) { if (n == 0) return 1; return n * factorial(n-1); }C. void factorial(int n) { if (n == 0) return 0; return n * factorial(n+1); }D. int factorial(int n) { if (n == 0) return 0; return n * factorial(n+1); }答案:B20. 在C语言中,哪个函数用于释放动态分配的内存?A. malloc()B. calloc()C. realloc()D. free()答案:D二、编程题(每题20分,共60分)1. 编写一个C语言函数,计算并返回两个整数的和。
全国计算机二级等级考试c语言程序设计题库
1.输入一个三位数,将其逆序输出。
2. 输入一个实数x,计算并输出y=3x^3+2x-1的值。
3. 输入一个整数n,输出n的二进制数表示。
4. 输入两个整数a和b,将它们的值互换。
5. 输入一个字符串,将其中小写字母转换成大写字母并输出。
6. 输入一个整数n,输出n的所有因子。
7. 输入一个正整数n,计算并输出1到n的和。
8. 输入5个整数,分别输出它们的平均值和方差。
9. 输入一个三位数,判断它是否为水仙花数。
10. 输入一个正整数n,计算并输出n的阶乘。
11. 输入一个字符串,统计其中大写字母、小写字母和数字的个数并输出。
12. 输入一个整数n,输出n的所有质数因子。
13. 输入两个正整数a和b,求它们的最大公约数和最小公倍数。
14. 输入一个字符串,判断它是否为回文字符串。
15. 输入一个整数n,判断它是否为完全平方数。
- 1 -。
数组下标的下限是0。
全国计算机二级C语言公共基础知识一、数据结构与算法1、完全二叉树是属于非线性结构,但其最佳存储方式是顺序存储方式2、顺序存储结构中可能根节点不唯一,故可能不是线性结构3、算法的有穷性是指,算法中的操作步骤为有限个,且每个步骤都能在有限时间内完成4、法复杂度包括算法的时间复杂度和算法的空间复杂度。
算法设计必须考虑执行算法所需要的资源,即时间与空间复杂度5、算法的优劣取决于算法复杂度,与程序的环境无关,当算法被编程实现之后,程序的运行受到计算机系统运行环境的限制6、循环队列中,由于指针超过队列地址最大值时会移动到队列最小地址处,所以队头指针可以大于也可以小于队尾指针7、链式存储结构中每个结点都由数据域与指针域两部分组成,增加了存储空间8、循环队列是队列的一种顺序存储结构,用队尾指针rear指向队列中的队尾元素,用排头指针front指向排头元素的前一个位置9、设循环队列为Q(1: m),其初始状态为front=rear=m。
经过一系列入队与退队运算后,front= X,rear= Y。
现要在该循环队列中寻找最大值的元素,最坏情况下需要比较的次数为(1)若X>Y,则次数为m-(Y-X)-1(2)若X<Y,则次数为Y-X-110、循环队列中的元素个数与队头指针和队尾指针的变化而变化11、队列的修改是依先进先出的原则进行的12、设计算法时不仅要考虑对数据对象的运算和操作,还要考虑算法的控制结构13、顺序表具有以下两个基本特征:(1)线性表中所有元素所占的存储空间是连续的;(2)线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。
(3)在顺序表中,每个元素占有相同的存储单元14、设栈的顺序存储空间为S(0:49),栈底指针bottom=X,栈顶指针top=Y(指向栈顶元素)。
则栈中的元素个数为X-Y+115、设栈的顺序存储空间为S(1: m),初始状态为top=m+1(X)。
c语言中-2的八进制
在C语言中,-2的八进制表示是什么呢?首先,我们知道负数在计算机中通常使用补码表示。
补码是通过将对应正数的二进制表示取反后加1得到的。
因此,我们首先需要将2转换为二进制,然后取其补码,最后将结果转换为八进制表示。
首先,2的二进制表示为0000 0010。
然后,取其补码,即将其各位取反后加1,得到补码为1111 1101。
接下来,我们需要将补码转换为八进制表示。
首先,将补码按照三位一组进行分组,得到111 111 01。
然后,将每组转换为对应的八进制数,得到7 7 1。
最后,由于这是负数的八进制表示,需要在最前面加上负号,因此-2的八进制表示为-177。
总结来说,C语言中-2的八进制表示为-177。
希望这个回答能够帮助到你理解这个问题。
二级公共基础知识作为必考内容出现,出题形式为选择题前10道,占考试总分的10%。
考试其它比重:1、C语言程序的结构占总分1%2、数据类型及其运算占总分4%3、选择结构程序设计占比分的3%4、循环结构占比分的5%5、数组的定义和引用占比分的5%6、函数占比分的5%7、编译预处理占比分1%8、指针占比分的5%9、结构体占比分的3%10、位运算占比分的2%11、文件操作占比分的2%考试方式上机考试,时长120分钟单选题40分(含公共基础10分),操作题60分(包括程序填空题、程序修改题、程序设计题)第一部分 C语言知识复习资料第一章 C语言基本知识(90分)【考点1】C程序用C语言编写的程序称为C语言源程序,源程序文件的后缀名为“.c”。
源程序经编译后生成后缀名为“.obj”的目标文件,再把目标文件与各种库函数连接起来,生成“.exe”可执行文件。
C语言有三种基本结构:顺序结构、选择结构、循环结构。
【考点2】main函数又称主函数,是C程序的入口.main后面跟一对小括号和一对花括号,花括号括起来的部分称为main函数的函数体.一个C程序从main函数开始执行,到main函数体执行完结束,而不论main函数在整个程序中的位置如何。
每一个程序有且仅有一个main函数,其他函数都是为main函数服务的。
【考点3】存储形式计算机在电脑中保存数据是采用二进制形式,由0或1构成的二进制称为位(bit),八个位构成一个字节(Byte),1个Byte=8个bit。
二进制、八进制、十六进制转化为十进制采用乘法,十进制转化为二进制、八进制、十六进制采用除法.数据的存放位置就是它的地址。
【考点4】注释是对程序的说明,可出现在程序中任意合适的地方,注释从“/*"开始到最近一个“*/”结束,其间任何内容都不会被计算机执行,注释不可以嵌套。
【考点5】书写格式每条语句的后面必须有一个分号,分号是语句的一部分。
一行内可写多条语句,一个语句可写在多行上。
c语言八进制转义字符表示的范围-回复【C语言八进制转义字符表示的范围】首先,让我们来了解什么是八进制转义字符。
在C语言中,转义字符是以反斜杠(\)开头的特殊字符序列,表示一些无法直接输入的字符。
而八进制转义字符是其中一种常见的转义字符,使用八进制数值来表示字符的ASCII码。
C语言中有一些特殊的八进制转义字符,它们可以表示不可打印的ASCII 字符或者是一些特殊的字符,比如换行符、制表符等。
下面我们将详细介绍这些八进制转义字符和其表示的范围。
1. \0:表示空字符(ASCII值为0)。
在C语言中,字符串以空字符结尾,所以\0常用于字符串的终止符。
例如,字符串"Hello\0"表示包含字符'H'、'e'、'l'、'l'、'o'和'\0'的字符串。
2. \n:表示换行符(ASCII值为10)。
当遇到\n时,会让输出光标移至下一行的开头位置。
这在打印多行文本或格式化输出时非常有用。
3. \t:表示制表符(ASCII值为9)。
制表符可以在输出中创建一些水平空白间隔。
它通常用于创建表格或按列对齐输出。
4. \r:表示回车符(ASCII值为13)。
当遇到\r时,会让输出光标回到当前行的开头位置。
它通常用于更新文本或打印进度条等情况。
5. \v:表示垂直制表符(ASCII值为11)。
类似于制表符,它可以在输出中创建垂直空白间隔。
不过,在现代计算机上,\v的使用相对较少。
除了上述常用的八进制转义字符外,C语言还提供了其他一些八进制转义字符,它们的使用相对较少。
这些八进制转义字符的范围通常根据ASCII 码表来定义。
在ASCII码表中,可打印字符从空格(32)到波浪号(126),共有94个字符。
对于这些可打印字符,可以使用其相应的ASCII值来表示。
例如,ASCII值为65的字符是大写字母'A',可以使用\101来表示。
2020年全国计算机等级考试二级C语言必考知识点总结【完美版】C语言最重要的知识点总体上必须清楚的:1)程序结构是三种:顺序结构、选择结构(分支结构)、循环结构。
2)读程序都要从main()入口,然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择),有且只有一个main函数。
3)计算机的数据在电脑中保存是以二进制的形式.数据存放的位置就是他的地址.4)bit是位是指为或者1。
byte是指字节,一个字节=八个位.概念常考到的:1、编译预处理不是C语言的一部分,不占运行时间,不要加分号。
C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。
2、define PI 3.;这个写法是错误的,一定不能出现分号。
3、每个C语言程序中main函数是有且只有一个。
4、在函数中不可以再定义函数。
5、算法:可以没有输入,但是一定要有输出。
6、break可用于循环结构和switch语句。
7、逗号运算符的级别最低,赋值的级别倒数第二。
第一章C语言的基础知识第一节、对C语言的根蒂根基熟悉1、C语言编写的程序称为源程序,又称为编译单元。
2、C语言书写格式是自由的,每行可以写多个语句,可以写多行。
3、一个C语言程序有且只有一个main函数,是程序运转的出发点。
第二节、熟悉vc++1、VC是软件,用来运行写的C语言程序。
2、每一个C语言程序写完后,都是先编译,后链接,末了运转。
(.c---.obj---.exe)这个进程中注意.c和.obj文件时没法运转的,只有.exe文件才可以运转。
(常考!)第三节、标识符1、标识符(必考内容):合法的要求是由字母,数字,下划线组成。
有其它元素就错了。
而且第一个必须为字母或则是下划线。
第一个为数字就错了2、标识符分为枢纽字、预定义标识符、用户标识符。
枢纽字:不可以作为用户标识标记。
main define scanf printf都不是枢纽字。
利诱你的地方If是可以做为用户标识符。
计算机国家二级C机考程序设计题技巧双击桌面上的,启动计算机等级考试二级模拟软件;启动软件后出现如下界面,选择练习模式后确定:之后出现下面窗口,选择一套题,我们提供的模拟软件中共提供了50套模拟题目,这50套题目分别对应着二级上机题库的前50套题。
输入1-50之间的数字确定后就可以抽取相应的题目,例如输入1后确定,按任意键继续。
桌面上出现了下图所示的窗口(取名:状态条)和下图所示的窗口(取名:题目窗口)考生状态条上面显示抽取的题目的序号和考试已经用去的时间。
考生窗口的左上角显示了考生的目录,图中的考生目录为:D:\Exam\24010001,从考生窗口的右上角可以看出,机考共有三个题目,分别是程序填空题、程序修改题,程序编写题。
做程序填空题的步骤如下:1.选择考生窗口右上角的程序填空题按钮,就会在下面的空白区域出现填空题的具体题目和要求。
考生读完题目要求之后就可以开始答题了。
选择题目窗口左上角的答题菜单中的“启动Microsoft visual c++”选项就可以启动vc编译软件。
2.选择文件菜单下的打开选项,如图所示:之后会弹出一个打开窗口:在窗口的1处单击,找到考生目录所指示的目录,本题的目录为D:\Exam\24010001,找到目录:可以发现里面包含有三个文件,分别是blank1.c,modi1.c,prog1.c三个文件,这三个文件分别对应着填空题,修改题和程序设计题。
做填空题只需要选中blank1.c后单击窗口右下角的打开按钮即可。
这时vc编译软件就会帮我们打开这个文件,并出现填空题的代码。
具体做题步骤参考《二级上机题库》第12页,对于程序修改题做题方法参照填空题,参见《二级上机题库》第75页。
下面详细介绍程序设计题的做题技巧:对于程序设计题,我们分了一下三大类:第一种:在考生的目录文件夹下含有in.dat文件:前50题中的:1,3,4,5,7,8,9,10,12,13,15,17,18,19,22,24,25,26,27,28,29,30,31,32,35, 37,38,39,40,41,42,43,44,45,46,50属于第一类。
《全国计算机等级考试二级C语言》公共基础知识考点梳理二级公共基础附220题祥解二级公共基础知识新大纲 (2)二级公共基础知识总结 (3)第一章数据结构与算法 (3)1.1 算法 (3)1.2 数据结构的基本基本概念 (3)1.3 线性表及其顺序存储结构 (3)1.4 栈和队列 (4)1.5 线性链表 (4)1.6 树与二叉树 (4)1.7 查找技术 (5)1.8 排序技术 (5)第二章程序设计基础 (5)2.1 程序设计设计方法和风格 (5)2.2 结构化程序设计 (5)2.3 面向对象的程序设计 (5)第三章软件工程基础 (6)3.1 软件工程基本概念 (6)3.2 结构化分析方法 (6)3.3 结构化设计方法 (7)3.4 软件测试 (8)3.5 程序的调试 (8)第四章数据库设计基础 (8)4.1 数据库系统的基本概念 (8)4.2 数据模型 (9)4.3关系代数 (9)附件一: 国家二级基础知识题库及分析 (11)第一套 (11)第二套: (12)第三套: (14)第四套: (15)第五套: (17)二级公共基础知识新大纲基本要求1, 掌握算法的基本概念.2, 掌握基本数据结构及其操作.3, 掌握基本排序和查找算法.4, 掌握逐步求精的结构化程序设计方法.5, 掌握软件工程的基本方法,具有初步应用相关技术进行软件开发的能力.考试内容一,基本数据结构与算法1, 算法的基本概念;算法复杂度的概念和意义(时间复杂度与空间复杂度).2, 数据结构的定义;数据的逻辑结构与存储结构;数据结构的图形表示;线性结构与非线性结构的概念. 3, 线性表的定义;线性表的顺序存储结构及其插入与除运算.4, 栈和队列的定义;栈和队列的顺序存储结构及其基本运算.5, 线性单链表,双向链表与循环链表的结构及其基本运算.6, 树的基本概念;二*树的定义及其存储结构;二*树的前序,中序和后序遍历.7, 顺序查找与二分法查找算法;基本排序算法(交换类排序,选择类排序,插入类排序).二,程序设计基础1, 程序设计方法与风格.2, 结构化程序设计.3, 面向对象的程序设计方法,对象,方法,属性及继承与多态性.三,软件工程基础1, 软件工程基本概念,软件声明周期概念,软件工具与软件开发环境.2, 结构化分析方法,数据流图,数据字典,软件需求规格说明书.3, 结构化程序设计方法,总体设计与详细设计.4, 软件测试的方法,白盒测试与黑盒测试,测试用例设计,软件测试的实施,单元测试,集成测试和系统测试. 5, 程序的调试,静态调试与动态调试.四,数据库设计基础1, 数据库的基本概念:数据库,数据库管理系统,数据库系统.数据模型,实体练习模型及E-R图,从E-R图导出关系数据模型.2, 关系代数运算,包括几何运算及选择,投影,连接运算,数据库规范化理论.数据库设计方法和步骤:需求分析,概念设计,逻辑设计和物理设计的相关策略.二级公共基础知识总结第一章数据结构与算法1.1 算法算法:是指解题方案的准确而完整的描述。
c 语言程序设计二级
C语言程序设计二级是计算机等级考试中的一个级别,它要求考生掌握C语言的基本语法、数据类型、运算符、控制语句、函数、指针、结构体等知识点,并且能够编写简单的C程序。
以下是C语言程序设计二级考试的一些重点内容:
1.C语言的基本语法:包括变量声明、数据类型、运算符等。
2.控制语句:包括if语句、switch语句、while循环、for循环等。
3.函数:包括函数的定义、声明和调用,函数的参数传递方式,函数的返回值等。
4.指针:包括指针变量的声明和初始化,指针的运算,指针与数组的关系等。
5.结构体:包括结构体的定义、声明和初始化,结构体数组,结构体与指针的关系等。
要达到C语言程序设计二级水平,考生需要掌握以上知识点,并且能够编写简单的C程序来解决实际问题。
同时,考生还需要了解一些基本的算法和数据结构,如链表、树、图等。
总之,C语言程序设计二级是一个比较基础的计算机等级考试级别,但考生需要全面掌握C语言的知识点,并且能够灵活运用,才能够通过考试。
二级C语言-177
(总分:100.00,做题时间:90分钟)
一、程序填空题(总题数:1,分数:30.00)
1.下列给定程序中,函数fun的功能是:逆置数组元素中的值。
例如,若a所指数组中的数据为:1,2,3,4,5,6,7,8,9,则逆置后依次为:9,8,7,6,5,4,3,2,1。
形参n给出数组中数据的个数。
请在下划线处填入正确的内容,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
void fun(int a[],int n)
{
int i,t
/********found********/
for(i=0;i< 1;i++)
{
t=a[i]
/********found********/
a[i]=a[n-1- 2];
/********found********/
3=t;
}
}
main()
{
int b[9]=(1,2.3,4,5,6,7,8,9},i;
printf("/nThe original data:/n");
for{i=0;i<9;i++)
printf("%4d",b[i]);
printf("/n");
fun(b,9);
printf("/nThe data after invert:/n");
for(i=0;i<9;i++)
printf("%4d",b[i]);
printf("/n");
}
(分数:30.00)
解析:n/2 i a[n-1-i] [考点]
本题关键字有:for循环语句;变量交换算法。
[解析]
填空1:将a[0]与a[n-1]对换,a[0]与a[n-2]对换,依次类推,需进行n/2次对换。
填空2:将a[0]与a[n-1]对换,a[1]与a[n-2]对换,依次类推,则a[i]=a[n-1-i];。
填空3:两值交换操作,应填入a[n-1-i]。
二、程序改错题(总题数:1,分数:30.00)
2.下列给定程序中,函数fun的功能是:将一个由八进制数字字符组成的字符串转换成十进制整数。
规定输入的字符串最多只能包含S位八进制数字字符。
例如,若输入77777,则输出32767。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int fun(char*p)
{
int n;
/********found********/
n=*p-"o";
p++;
while(*p!=0)
{
/********found********/
n=n*8+*p-"o";
p++;
}
return n;
}
main()
{
char s[6];
int i;
int n;
printf("Enter a string(octal digits):");
gets(s);
if(strlen(s)>5)
{
printf("Error;string too longer!/n/n");
exit(0);
}
for(i=0;s[i];i++)
if(s[i]<"0"||s[i]>"7")
{
printf("Error;%c not is octal digits!/n/n",s[i]);
exit(0);
}
printf("The originl string:");
puts(s);
n=fun(s);
printf("/n%s is convered to intege number:%d/n/n",s,n);
}
(分数:30.00)
__________________________________________________________________________________________ 正确答案:()
解析:n=*p-"0"; n=n*8*p-"0"; [考点]
本题关键字有:数字和字符转换方法;进制转换方法。
各种进制转换为十进制采用按权求和的方法,十进制转换成某进制采用除该进制基数取余的方法。
[解析]
(1)指针D中存放的是数字字符,即数字的ASCII码值,将其减去字符‘0’的ASCII码得到对应的数字,进而完成数字运算。
(2)将八进制数乘以8再加上个位数来完成在一个数后面加上一位的操作。
三、程序设计题(总题数:1,分数:40.00)
3.学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中。
请编写函数fun,其功能是:函数返回该学号的学生数据,指定的学号在主函数中输入。
若没找到指定学号,在结构体变量中给学号置空串,给成绩置-1,作为函数值返回(用于字符串比较的函数是strcmp)。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<string.h>
#include<stdio.h>
#include<stdlib.h>
#define N 16
typedef struct
{
char num[10];
int s;
}STREC;
STREC fun(STREC*a,char*b)
{
}
void main()
{
STREC s[N]={{GA005",85},
{"GA003",76},{"GA002",69},{"GA004",85},{"GA001",91},{"GA007",72},{"GA008",64},{"GA006",87},{ "GA015",85},{"GA013",91},{"GA012",64},{"GA014",91},{"GA011",77},{GA017",64},{"GA018",64},{"G A016",72}};
STREC h;
char m[10];
int i;
printf("The original data:/n");
for(i=0;i<N;i++)
{
if(i%4==0)
printf("/n"); /*每行输出4个学生记录*/
printf("%s%3d",s[i]num,s[i].s);
}
printf("/n/nEnter the number:");
gets(m);
h=fun(s,m);
printf("The data:");
printf(”/n%s%4d/n",h.num,hs);
printf("/n");
}
(分数:40.00)
__________________________________________________________________________________________ 正确答案:()
解析:STREC fun(STREC*a,char*b)
{
int i;
STREC str={"/0",-1}; /*若没找到指定的学号,在结构体变量中给学号置空串,给成绩置-1*/
for(i=0;i<N;i++)
if(strcmp(a[i].num,b)==0)
/*找到指定学号的学生数据*/
str=a[i];
return str; /*返回学生记录*/
} [考点]
本题关键字有:结构体类型;字符串比较函数strcmp。
[解析]
定义返回值的学号为空串,成绩为-1,通过循环语句查找与所给学号相同的学生数据,若找到则将学生数据赋值给str,将str作为函数值返回。