江苏省高校计算机等级考试二级C语言上机真题模拟的答题要点
江苏省计算机二级考试(C语言)
答案: 2
[单选题]以下选项中,不能用作标识符的是 。
A. print
B. FOR
C. &a D. _00
答案:C
[单选题] 以下选项中,
是C语言关键字。
A. printf B.include
C.fun
D.default
答案:D
[学校单选题] 执行语句“printf(”bye\bye101\101“);”时输出到 屏幕的结果为 (22) 。
“while(--a > 0&& --b>0)a=b;”后变量a、b的值是
。
A. 0,2
B. 0,1
C. 1,1
答案:A 短路运算,--b不执行 18
D. 2,2
2. 语句
⑴ 实现顺序结构的语句
① 表达式语句,空语句,复合语句,函数调用语句
② 标准输入输出库函数printf(), scanf(),getchar() , putchar() ,gets(),puts()
答案:D
10
⑶ 运算符和表达式的表示及使用
① 赋值表达式,赋值运算符的左值要求
② 算术表达式。++、--运算符左值要求。溢出。
③ 关系表达式与逻辑表达式,逻辑表达式优化处理
④ 逗号表达式
⑤ 条件表达式
⑥ 表达式运算中操作数类型自动转换与强制转换
【考题解析】
[单选题] 若有声明“double x=3,c,*a=&x,*b=&c;”,则下列语
时“x+1>x”为假。 答案: 32767
13
[填空题] 若有声明“float y=3.14619;int x;”,则计算表达式
计算机等级考试二级C语言知识点
计算机等级考试二级C语言知识点必须牢牢掌握的概念总体上必须清楚的:1)程序结构是三种: 顺序结构, 循环结构(三个循环结构), 选择结构(if 和switch)2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择)。
3)计算机的数据在电脑中保存是以二进制的形式. 数据存放的位置就是他的地址.4)bit是位是指为0 或者1。
byte 是指字节, 一个字节= 八个位.5)一定要记住二进制如何划成十进制。
概念常考到的:1、编译预处理不是C语言的一部分,不再运行时间。
C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。
2、每个C语言程序中main函数是有且只有一个。
3、在函数中不可以再定义函数。
4、算法的是一定要有输出的,但可以没有输入。
5、break可用于循环结构和switch语句。
6、逗号运算符的级别最低。
第一章1)合法的用户标识符考查:合法的要求是由字母,数字,下划线组成。
有其它元素就错了。
并且第一个必须为字母或则是下划线。
第一个为数字就错了。
关键字不可以作为用户标识符号。
main define scanf printf 都不是关键字。
迷惑你的地方If是可以做为用户标识符。
因为If中的第一个字母大写了,所以不是关键字。
2)实型数据的合法形式:2.333e-1 就是合法的,且数据是2.333×10-1。
考试口诀:e前e后必有数,e后必为整数。
.3)字符数据的合法形式::'1' 是字符占一个字节,"1"是字符串占两个字节(含有一个结束符号)。
'0' 的ASCII数值表示为48,'a' 的ASCII数值是97,'A'的ASCII数值是65。
4) 整型一般是两个字节, 字符型是一个字节,双精度一般是4个字节:考试时候一般会说,在16位编译系统,或者是32位系统。
碰到这种情况,不要去管,一样做题。
江苏省计算机等级考试二级C上机考试模拟试题
江苏省计算机等级考试二级C上机考试模拟试题C01一、改错题(18分)【程序功能】下列程序中函数fun的功能是:首先将s数组中的字符串按以下规则复制到t数组:对于下标值为偶数位置上的字符复制n次(n=下标值+1),对于下标值为奇数位置上的字符只复制一次;其次将t数组中的字符串按字符编码从小到大的顺序排序。
【测试数据与运行结果】当s中的字符串为“abcdefg”时,运行结果应为“abcccdeeeeefggggggg”当s中的字符串为“”时,运行结果应为“6”【含有错误的源程序】#include "stdio.h"#include "conio.h"void fun (char *s, char *t){ int i,j,k,n=0; char temp;for(i=0;s[i]!='\0';++i)if(i%2=0)for(k=0;k<i+1;++k){ t[n]=s[i]; n++; }else t[n]=s[i];t[n]='\0';for (i=0;i<n-1;i++){k=i;for (j=0;j<n;j++)if(t[j]<t[k])k=j;if(k!=i){ temp=t[i]; t[i]=t[k]; t[k]=temp; }}}main(){ char s[20], t[100];printf("\nPlease enter string s:"); gets(s);fun(s);printf("The result is: %s\n", t);getch();}【要求】1.将上述程序录入到文件myf1.c中,根据题目要求及程序中语句之间的逻辑关系对程序中的错误进行修改。
2.改错时,可以修改语句中的一部分内容,调整语句次序,增加少量的变量说明或编译预处理命令,但不能增加其它语句,也不能删去整条语句。
计算机二级考试C语言答题注意事项
计算机二级考试C语言答题注意事项基本原则是计划好做题的时间,不要急燥,保持稳定的答题速度,应将熟悉的、会做的、容易的先做。
选择题和操作题在进行的过程中,都一定要看清题目,审好题,弄清题目要考核的知识点,能够迅速回忆相关的知识,综合运用平时上课老师所教授的做题的方法和技巧,进行答题。
10分例如:以下C语言用户标识符中,不合法的是A)_1B)AaBc C)a_b D)a—b这个题目是考核的是标识符的命名规则的问题,我们知道C中合法的标识符必须以字母、下划线开头,由字母、数字、下划线组成,据此应该选择D。
再如:有以下程序#includemain(){int a=1,b=0;if(!a) b++;else if(a==0)if(a)b+=2;else b+=3;printf(”%d\n”,b);}程序运行后的输出结果是A)0B)1C)2D)3这个题目考核选择结构的控制流程。
题目采用的是else~if结构,实际上是if的嵌套。
不管怎样,始终牢记这种嵌套的if语句的执行流程:从上向下逐一对if后的表达式进行检测。
当某一个表达式的值为非0时,就执行与此有关子句中的语句,其余部分不执行,直接越过去。
如果所有表达式的值都为0,则执行最后的else子句。
当执行以上程序时,首先定义a、b并赋初值1、0,然后进入if语句。
当从上向下逐一检测时,!a 的值为0,则越过b++,进入else 后的if语句,检测到a= =0的值为0,则越过if(a)b+=2;语句,因为前面所有if子句中的表达式的值都为0,因此执行最后else子句中的语句b+=3,求出b为3,然后退出if结构,接着输出b的值,所以选择D。
(3)选择题(21)-(40),这20个都有一定难度,涉及C后面的章节,如函数、数组、指针、字符串、结构体、预处理等内容,有部分都会给定出一段代码,根据代码做选择,因此,需要读懂C的简单代码然后做了选择。
例如:有以下程序(函数fun只对下标为偶数的元素进行操作)# include<stdio.h>void fun(int *a;int n){int i,j,k,t;for (i=0;i<n-1;i+=2){k=i;for(j=i;ja[k])k=j;t=a[i];a[i]=a[k];a[k]=t;}}main(){int aa「10」={1,2,3,4,5,6,7},i;fun(aa,7);for(i=0;i<7;i++)printf(”%d,”,aa[i]));printf(”\n”);}程序运行后的输出结果是A)7,2,5,4,3,6,1B)1,6,3,4,5,2,7C)7,6,5,4,3,2,1D)1,7,3,5,6;2,1通过对代码的阅读,采用模拟运行的方法,可知此题的算法是将数组元素中偶数下标的元素进行从大到小的排序,它使用的是选择排序法。
江苏省计算机二级(C语言)
printf(“%s”,colorname[c1-c2]); }
White
例11:
以下程序运行后输出到屏幕的结果是:
#include<stdio.h> void fun(char *p1,char *p2); void main() {int i; char a[]="54321"; puts(a+2); fun(a,a+4); puts(a);} void fun(char *p1,char *p2) {char t; while(p1<p2) {t=*p1;*p1=*p2;*p2=t; p1+=2,p2-=令的叙述中错误的是 A. 预处理命令由预处理程序解释。 C B. 程序中的预处理命令是以#开始的。 C. 若在程序的一行中出现多条预处理命令,这 些命令都是有效的。 D. 预处理命令既可以出现在函数定义的外部, 也可以出现在函数体内部。
例6:
下列关于文件的叙述中正确的是: B A.C语言中的文件是流式文件,因此只能顺序存 取文件中的数据。 B.调用fopen函数时若用"r"或"r+"模式打开一个 文件,该文件必须在指定存储位置或默认存储位置 处存在。 C.当对文件进行了写操作后,必须先关闭该文件 然后再打开,才能读到该文件中的第1个数据。 D.无论以何种模式打开一个已存在的文件,在进 行了写操作后,原有文件中的全部数据必定被覆盖。
数组与指针。
函数的定义与调用。(递归) 不同的变量。(动态变量与静态变量,全局变
量与局部变量) 预处理命令。(宏与文件包含) 字符串。(以字符数组形式表示与以字符指针 形式表示) 结构体与链表。 共用体与枚举类型。 文件系统与其应用。
江苏省高校计算机等级考试二级C语言上机真题答题要点
【上机题命题及答题要点】1、近年来江苏省高校上机题目难度有所下降。
本轮上机命题的难度系数及全国计算机等级考试二级C语言接近。
2、改错题通常有3~4个错误。
错误分为两大类,一类是语法出错,这类错误比较查错和容易修改,即在编译时报的错误。
另一类是结果出错,即程序的算法出错,这类错误需认真审题。
3、编程题必须掌握C语言的文件,应熟悉文件指针的定义,文件的打开及文件的输入输出。
编程题的固定框架。
必须记忆。
以C01的编程为例。
#include <stdlib.h> /*库函数exit(0)需要*/#include <stdio.h> /*定义文件指针时需要的头文件*/…………..{}void main(){ FILE *fp;所有数据类型的说明和定义if((fp=fopen("t:\\myf2.out","w"))==NULL){ printf("\nCan't open the file!"); exit (0);}函数调用(具体问题具体分析)结果输出printf("\nMy number is:120992340\n");fprintf(fp,"\nMy number is:1292340\n");fclose(fp);}4、必须熟悉常用算法。
5、江苏省高校计算机二级C语言上机编程题常考问题:字符串相关问题、素数相关问题、回文数相关问题、矩阵(二维数组)相关问题、特殊数问题(如,合数、真因子或质因子之和、水仙花数、亲密数、完数、数制转换、哥德巴赫猜想等)。
6、掌握文件输出操作标准形式。
【2013年3月江苏省等考上机真题解析】江苏省高等学校非计算机专业学生(C01)计算机基础知识和应用能力等级考试上机试卷二级C语言(试卷代号C01)(本试卷完成时间70分钟)一、改错题(16分)【程序功能】判断一个N×N方阵(N为奇数)是否为魔方阵。
江苏省计算机二级c语言机考试题及答案
江苏省计算机二级c语言机考试题及答案一、选择题1. 下列关于C语言的描述中,错误的是:A. C语言是一种高级语言B. C语言是一种面向过程的语言C. C语言源于B语言D. C语言是一种解释型语言答案:D. C语言是一种解释型语言2. 在C语言中,可以用于定义宏的命令是:A. #ifB. #defineC. #includeD. #endif答案:B. #define3. 在C语言中,标识符的命名规则中,不允许使用的符号是:A. 下划线(_)B. 感叹号(!)C. 加号(+)D. 美元符号($)答案:B. 感叹号(!)4. C语言中的运算符中,以下优先级最高的是:A. 关系运算符B. 逻辑运算符C. 赋值运算符D. 算术运算符答案:C. 赋值运算符5. 下列程序中,有语法错误的是:A.```c#include <stdio.h>int main() {printf("Hello, World!\n");return 0;}```B.```c#include <stdio.h>int main() {printf("Hello, World!\n") return 0;}```C.```c#include <stdio.h>int main() {printf("Hello, World!\n"); return;}```D.```c#include <stdio.h>int main() {printf("Hello, World!\n");return 0;```答案:B.```c#include <stdio.h>int main() {printf("Hello, World!\n")return 0;}```二、填空题1. 下列程序的输出结果是______:```c#include <stdio.h>int main() {int a = 5;printf("%d", a++);printf("%d", ++a);return 0;}```答案:562. 下列程序的输出结果是______:```c#include <stdio.h>int main() {int a = 2;int b = 3;int c = a | b;int d = a & b;printf("%d\n", c);printf("%d\n", d);return 0;}```答案:3, 2三、编程题编写一个程序,输出1~100之间所有能同时被3和5整除的数,并计算这些数的平均值。
江苏省计算机等级考试(二级C语言)考点分析
江苏省计算机等级考试(二级C语言)考点分析一、宏定义二级考试必考的,必须让学生明白:宏替换只是原样替换。
(1)2002年秋填空第7题#define N 3#define Y(n) ((N+1)*n)则执行语句“z=2*(N+Y(5+1));”后,z的值是_______。
替换时原样替换后的式子为:z=2*(3+((3+1)*5+1));(2)2005年春填空第10题#include <stdio.h>#define ADD(x,y) x+ymain(){int a=15,b=10,c=20,d=5;printf(“%d\n”,ADD(a,b)/ADD(c,d));上面程序输出结果为_________。
二、递归应用(1) 2000年秋填空第5题main(){ int s, p[9]={1,2,3,4,5,6,7,8,9};printf(“\n%d”, add(p,5));}add(int *p, int n){ if(n==1) return *p;else return *p+add(p+1,n-1);}程序输出结果是________。
结果为:15(2) 2000年秋填空第8题fun(int n, int *s){ int f1,f2;if(n==1||n==2) *s=1;else{fun(n-1,&f1); fun(n-2, &f2);*s=2*f1+f2+1; printf(“\n%d,%d”,f1,f2);}}main(){ int x;fun(4,&x); printf(“\n x=%d”,x);}程序运行时输出的第一行是_________,第二行是________,最后一行是________。
答案:1,1 4,1 x=10(3) 2001年春填空第4题以下程序输出结果是________main(){ printf(“%d”, fun(5)); }fun( int n){ if(n==1) return 1;return n-fun(n-1);}结果为:3(4) 2001年春填空第12题以下程序实现将a数组中后8个元素从大到小排序的功能void sort(int *x, int n)main(){ int a[12]={5,3,7,4,2,9,8,32,54,21,6,43}, k;sort(______, 8);for(k=0; k<12; k++) printf(“%d”,a[k]);}void sort(int *x, int n){int j,t;if(n==1) return;for(j=1; j<n; j++)if(_______){ t=x[0]; x[0]=x[j]; x[j]=t; }sort(x+1, ________);}本题结合了冒泡排序法,第一个空填:a+4 ;第二个空填:x[0]<x[j] ;第三个空填:n-1(5) 2001年春填空第8题以下程序运行时第一行输出________,第二行输出________。
江苏省计算机c语言二级考试试题及答案
江苏省计算机c语言二级考试试题及答案一、选择题(每题2分,共40分)1. 下列哪个选项是C语言中合法的变量名?A. 2variableB. variable2C. variable-nameD. variable name答案:B2. 在C语言中,以下哪个关键字用于声明函数?A. classB. functionC. voidD. int答案:D3. 若有以下代码片段:```cint a = 3, b = 5;printf("%d", a + b);```输出结果是什么?A. 8B. 35C. 53D. 3+5答案:A4. 在C语言中,哪个运算符用于计算两个数的乘积?A. +B. -C. *D. /答案:C5. 以下哪个选项是C语言中合法的数组声明?A. int array[10];B. int array[];C. int array[10][];D. int array[10][10];答案:A6. C语言中,哪个函数用于输入一个字符?A. scanf()B. getchar()C. printf()D. puts()答案:B7. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. %D. +=答案:A8. 在C语言中,哪个关键字用于声明一个结构体?A. structB. unionD. typedef答案:A9. 若有以下代码片段:```cint x = 10;printf("%d", x++);```输出结果是什么?A. 10B. 11C. 9D. 无法确定答案:A10. 在C语言中,哪个函数用于输出一个字符串?A. scanf()B. printf()C. gets()D. puts()答案:D11. 下列哪个选项是C语言中合法的指针声明?A. int *pointer;B. int pointer[];C. int pointer[10];D. int *pointer[10];答案:A12. 在C语言中,哪个关键字用于声明一个枚举?B. unionC. structD. typedef答案:A13. 若有以下代码片段:```cint a = 10, b = 20;printf("%d", a > b ? a : b);```输出结果是什么?A. 10B. 20C. 30D. 无法确定答案:B14. 在C语言中,哪个函数用于计算两个数的绝对值?A. abs()B. fabs()C. sqrt()D. pow()答案:A15. 下列哪个选项是C语言中合法的函数声明?A. int function();B. void function();C. int function(int x);D. All of the above答案:D16. 在C语言中,哪个关键字用于声明一个联合体?A. unionB. structC. enumD. typedef答案:A17. 若有以下代码片段:```cint a = 10, b = 20;printf("%d", a < b ? a : b);```输出结果是什么?A. 10B. 20C. 30D. 无法确定答案:A18. 在C语言中,哪个函数用于计算两个数的指数?A. pow()B. sqrt()C. fabs()D. abs()答案:A19. 下列哪个选项是C语言中合法的宏定义?A. #define PI 3.14159B. #define PI = 3.14159C. #define PI "3.14159"D. #define PI 3.14159答案:A20. 在C语言中,哪个关键字用于声明一个宏?A. defineB. macroC. constD. typedef答案:A二、填空题(每题2分,共20分)1. C语言中,用于定义一个整型变量的关键字是________。
全国计算机等级考试二级C语言上机答题技巧
全国计算机等级考试二级C语言上机答题技巧一、上机改错题的特点和注意事项1.上机改错的试题中通常包含两个(或三个)错误需要修改。
2.试题中用"******found******/"来提示在下一行(或下面第二行)有错。
3.错误的性质基本分语法错和逻辑错两种,也有些试题要求把语句添加在下划线处。
4.特别要注意的是:只能在出错的行上进行修改,不要改动程序行的顺序,更不要自己另编程序。
二、上机改错测试时,建议按以下步骤进行1.首先仔细审题,了解试题的要求,看清楚试题给出的输入和输出例示,以便检验改错后程序运行的结果是否正确。
2.当在Visual C++6.0环境下调出源程序后,审视所在函数,根据题义理解程序所采用的基本算法,做到心里有数。
3.先按CTRL+F7对测试程序进行检查是否有语法错误。
当编译提示有语法错时,可参考编译提示来查找并改正错误。
4.当不再出现语法错时,使用F7执行,看结果使用CTRL+F5,按照试题的示例给出的数据进行试算,若试算的结果与给出的输出结果相同时,该题就做对了;若试算的结果与给出的输出结果不同,就应进一步检查程序中的逻辑错误。
5.当程序存在逻辑错误时,首先应当理解题意、读懂程序的算法,必要时可按步检查数据的流程,以便确定错误所在。
例如,题目要求数据按由小到大排序,而结果数据是按由大到小进行了排序,问题可能出现在条件判断上。
又如,输出的字符串比预期的短,就有可能字符串的结束标志放错了位置。
再如做循环的时候数组上限下限错误了,基数是从0开始而不是1开始的。
修改程序中的逻辑错时,要求考生认真读懂程序代码。
6.修改完成,得到正确结果后,一定不要忘记把修改后的程序存盘。
三、上机编程题的特点和说明1.在二级C程序设计上机考试中,要求完成一个独立的函数的编程。
目前教育部考试中心已出版了上机考试习题集,这些有助于学习编程,但考生应当在学习过程中理解基本的算法,通过实际上机操作积累经验,才能掌握基本的编程能力。
江苏省计算机二级考试c真题及答案
江苏省计算机二级考试c真题及答案一、单项选择题(每题2分,共20分)1. C语言中,以下哪个选项是合法的整型常量?A. 0x12B. 0x12.3C. 0x12LD. 0x12F答案:A2. 在C语言中,以下哪个选项是合法的字符常量?A. 'a'B. "a"C. 'ab'D. '0'答案:A3. 若有以下定义:int a=2, b=3; 则表达式a++ + b的值是多少?A. 4B. 5C. 6D. 7答案:B4. 在C语言中,以下哪个选项是合法的数组声明?A. int arr[5] = {1, 2, 3, 4, 5};B. int arr[] = {1, 2, 3, 4, 5};C. int arr[5] = {1, 2, 3};D. int arr = {1, 2, 3, 4, 5};答案:B5. 在C语言中,以下哪个选项是合法的函数声明?A. void func();B. int func(int a, int b);C. int func();D. void func(int a, int b);答案:D6. 在C语言中,以下哪个选项是合法的指针声明?A. int *ptr;B. int ptr[];C. int *ptr[];D. int ptr[5];答案:A7. 在C语言中,以下哪个选项是合法的循环结构?A. for(;;)B. while(1)C. do{} while(0);D. All of the above答案:D8. 在C语言中,以下哪个选项是合法的switch语句?A. switch(a) { case 1: break; }B. switch(a) { default: break; }C. switch(a) { case 1: case 2: break; }D. All of the above答案:D9. 在C语言中,以下哪个选项是合法的宏定义?A. #define PI 3.14159B. #define PI = 3.14159C. #define PI 3.14159D. #define PI 3.14159答案:A10. 在C语言中,以下哪个选项是合法的结构体声明?A. struct { int a; float b; } point;B. struct point { int a; float b; };C. struct { int a; float b; } point;D. Both A and B答案:D二、填空题(每题2分,共20分)1. 在C语言中,若变量a的值为5,执行语句a %= 3后,a的值为________。
江苏省计算机二级C语言复习指导
总体上必须清楚的:1)程序结构是三种: 顺序结构, 循环结构(三个循环结构), 选择结构(if 和switch)2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择)。
3)计算机的数据在电脑中保存是以二进制的形式. 数据存放的位置就是他的地址.4)bit是位是指为0 或者1。
byte 是指字节, 一个字节= 八个位.5)一定要记住二进制如何划成十进制。
概念常考到的:1、编译预处理不是C语言的一部分,不再运行时间。
C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。
2、每个C语言程序中main函数是有且只有一个。
3、在函数中不可以再定义函数。
4、算法的是一定要有输出的,他可以没有输入。
5、break可用于循环结构和switch语句。
6、逗号运算符的级别最低关键字不可以作为用户标识符号2)实型数据的合法形式:2.333e-1 就是合法的,且数据是2.333×10-1。
考试口诀:e前e后必有数,e后必为整数。
. 3)字符数据的合法形式::'1' 是字符占一个字节,"1"是字符串占两个字节(含有一个结束符号)。
'0' 的ASCII数值表示为48,'a' 的ASCII数值是97,'A'的ASCII 数值是65。
4)整型一般是两个字节, 字符型是一个字节,双精度一般是4个字节:考试时候一般会说,在16位编译系统,或者是32位系统。
碰到这种情况,不要去管,一样做题。
掌握整型一般是两个字节, 字符型是一个字节,双精度一般是4个字节就可以了。
5)转义字符的考查:在程序中int a = 0x6d,是把一个十六进制的数给变量a 注意这里的0x必须存在。
在程序中int a = 06d, 是一个八进制的形式。
在转义字符中,’\x6d’才是合法的,0不能写,并且x是小写。
‘\141’是合法的,0是不能写的。
江苏等级考试二级C语言上机真题汇编解析
1江苏省高等高等学校非计算机专业学生计算机基础知识和应用能力等级考试上机试卷二级 C语言(本试卷完成时间70分钟)一、改错题(16分)【程序功能】输入两个正确日期且年份在1900-9999范围内,计算并输出两个日期之间间隔的天数。
例如:2008-8-1和2009-8-1之间间隔的天数为365。
提示:被4整除并且不能被100整除的年份是闰年,能被400整除的年份也是闰年,其他年份则是平年。
【测试数据与运行结果】显示:first date:输入:1980-2-1显示:second date:输入:2009-8-1输出:10774 days【含有错误的源程序】#include<stdio.h>#define leap(int y) ((y)%4==0&&(y)%100!=0||(y)%400==0)struct d{ int y,m,d; };int days(struct d d1, struct d d2){ int mon[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},{0,31,29,31,30,31,30,31,31,30,31,30,31}};int i; long td=0;for(i=d1.y;i<d2.y;i++)td=leap(i)?366:365;for(i=1;i<d1.m;i++)td- =mon[leap(d1.y)][i];td-=d1.d-1;for(i=1;i<d2.m;i++)td+=mon[leap(d2.y)][i];td+=d2.d-1;return td;}void main(){ struct d1,d2;puts(“\n first date:”);scanf(“%d-%d-%d”,&d1.y,&d1.m,&d1.d);puts(“\n second date:”);scanf(“%d-%d-%d”,&d2.y,&d2.m,&d2.d);printf(“%d days”,days(d1.y,d2.y));getch();}【要求】1.将上述程序录入到文件myf1.c中,根据题目要求及程序中语句之间的逻辑关系对程序中的错误进行修改。
计算机二级c语言操作题做题技巧
计算机二级c语言操作题做题技巧一、选择题做题技巧1. 仔细阅读题干,注意题干中的关键词。
2. 理解选项,排除明显错误的选项。
3. 对于不确定的选项,可采用排除法,逐步缩小范围。
4. 利用C语言的基础知识,对选项进行逻辑推理。
二、填空题做题技巧1. 仔细阅读题目要求,明确填空内容。
2. 根据题目所给的代码片段,分析上下文关系。
3. 根据C语言的语法规则,填写合适的语句或表达式。
4. 检查填空后代码的逻辑性和语法正确性。
三、编程题做题技巧1. 理解题目要求,明确编程目的和功能。
2. 仔细分析题目给出的示例输入输出,理解题目的逻辑。
3. 设计算法,将问题分解为小的步骤。
4. 编写代码,注意代码的可读性和逻辑性。
5. 运行测试,检查代码的正确性和完整性。
6. 考虑边界条件和异常情况,确保程序的健壮性。
四、调试题做题技巧1. 阅读题目,了解需要调试的代码段。
2. 运行代码,观察程序的运行结果。
3. 根据题目要求,分析程序中的错误。
4. 利用调试工具,逐步跟踪程序的执行过程。
5. 修改错误,确保程序能够正确运行并满足题目要求。
五、综合应用题做题技巧1. 综合运用选择题、填空题、编程题和调试题的技巧。
2. 分析题目的综合性要求,合理分配解题时间。
3. 注意题目中的细节要求,避免因小失大。
4. 综合运用C语言的知识和技能,解决实际问题。
六、注意事项1. 保持冷静,合理安排考试时间。
2. 仔细审题,避免因粗心大意而失分。
3. 遇到难题不要慌张,先做自己熟悉的题目。
4. 检查答案,确保没有遗漏或错误。
5. 考试结束后,及时复习总结,为下一次考试做好准备。
全国计算机等级考试2级C语言上机考试例题讲解
2级考试的上机题型有: 级考试的上机题型有: 级考试的上机题型有
1。填空题(30分,2~3个) 。填空题( 分 个 2。改错题(30分,2~3个) 。改错题( 分 个 3。程序编写题(40分,一定记得调试运行,否则没分!) 一定记得调试运行, 。程序编写题( 分 一定记得调试运行 否则没分! 1、 题是按照每个考点的答案给分的, 1、2 题是按照每个考点的答案给分的,也就是说只有和标准 答案一致的才是正确的 。虽然和标准答案不同也有可能运行 正确 ,但是也不能得分 。不过不用担心这个 ,因为题目简单 相应的正确答案的种类也少, 所以运行正确就OK 相应的正确答案的种类也少, 所以运行正确就 ;3题要求 题要求 最高、 最高、 也最灵活 ,只要能写出符合题目要求功能的代码就可 以得40分 以得 分。 出现的问题是: 出现的问题是:有时最后那题就是编不出来 ,前面又错了 就得50分 一点 就得 分……
}
2。删除字符串 。
[例5]:规定输入的字符串中只包含字母和*号。请编写函数 fun,它的功能是:将字符串中的前导*号全部删除,中间和尾部 的*号不删除。例如,若字符串中的内容为 *******A*BC*DEF*G****,删除后,字符串中的内容则应当 是A*BC*DEF*G****。 void fun (char *a) { char *p=a ; while(*p==‘*’) p++; for(; *p!=‘\0’;p++,a++) *a=*p; *a=‘\0’ ; }
练习:fun函数的功能是:在一个字符串中,删除指定 下标的字符,余下的形成一个新串,比如,串a为 “world”,n=3,则输出的字符串为“word”. void fun(char a[], charb[], int n) { int i,k=0 ; for(i=0;a[i]!=‘\0’;i++) {if ( i!=n ) b[k]=a[i]; k++;} b[k]=‘\0 ’;
二级C语言上机编程题答题技巧
二级C语言上机编程题答题技巧————————————————————————————————作者:————————————————————————————————日期:二级C语言上机编程题技巧一、技巧的原理首先使用这个技巧必须了解上机编程题的评分原理。
以上机题的第5套编程题为例。
二级C语言的上机试题是让我们自己编写某个小程序的子程序来实现题目中的功能。
那么考官是怎么样来检查我们编的程序是否正确呢?根据编程题下面这段程序我们就可以看出:在考生文件夹下存在一个名为in.dat的文件。
首先以只读的方式打开in.dat文件,以只写方式打开out.dat文件,若out.dat不存在则自动新建该文件。
然后使用fscanf语句将其中的数据输入到变量a中,再将a当作实参调用我们需要编写的程序。
将结果用fprintf语句输入到out.dat文件中。
其中.dat为这个文件的扩展名(扩展名有可能被隐藏)。
所以考官不会直接检查我们的程序,只要检查out.dat里的数据是否正确就可以判断我们编的子程序是否正确。
因此程序编写题,我们可以只通过修改out.dat里面的答案而不去编写程序就可以拿到满分。
二、使用技巧的条件当然不是所有的编程题我们都能使用这个技巧的(不过90%的编程题都可以用这个方法)。
使用这个技巧必须具备两个条件:1、编程题是通过我上面讲的方法来检验,说白了就是我们的考生文件夹下面含有in.dat文件。
2、编程题需要实现的功能我们编程者可以自己想出来程序完成的答案。
例如本题:它让我们实现实型数据保留两位小数,并对第三位进行四舍五入。
那么这个功能我们若知道任一个实数都可以自己计算出结果,那么我们才能将正确答案写在out.dat文件里面。
若某程序让你编写子程序实现求取圆周率并精确到小数点后10位这个功能,那么我们就无法背出那么长的数字,因此也没有办法知道结果。
那么这种技巧就不能使用。
三、步骤确定了这个技巧可以使用后,我们就可以开始操作了。
二级C语言上机编程题技巧总结
二级C语言上机编程题技巧一、方法总结1、二级C语言上机编程题在二级上机考试中属于较难题型,因此很多同学都害怕通过不了。
综合往年的考试,结合考试大纲,每年考试的编程题都有一定的规律和方法,只要同学们认真熟练使用做题的方法,通过考试是没有问题的。
2、编程题做题方法一:使用C语言特有的函数做题(1)编程思想:使用C语言函数库中的做题,做题时必须注意包含对应的头文件(2)考题举例:题库中的第37题,要求将数字字符串转化为对应整数,例如“-1234”转化后为-1234。
做题时需要添加头文件#include "stdlib.h",然后在fun函数中写入程序return atol(p);其中atol(p)表示将p从字符串转化为长整型数。
最后编译,运行后输入测试数据后即可得到满分。
#include <stdio.h>#include <string.h>#include "stdlib.h"long fun ( char *p){return atol(p);}(3)方法总结:该类方法可以适用的题目较少,同学们了解即可。
3、编程题做题方法二:使用规律做题(1)编程思想:部分题目的答案是固定的,不会因为输入的数据改变而改变,因此这部分题目我们直接将答案记住即可,减少编程的麻烦。
(2)考题举例:题库中的70题,求cos(x)-x=0的一个实根。
做题时候在fun函数中输入return0.739085;后点击编译和运行即可,无需输入测试数据。
(补充:如果需要输入测试数据,程序在输出的黑屏上面会提示,不过一般是英文提示,所以同学们要格外小心)#include <math.h>#include <stdio.h>double fun(){return 0.739085;}(3)考题总结:该题为每年必考的题目,因此同学们要将答案熟记,以便大家能顺利通过考试。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
江苏省高校计算机等级考试二级C语言上机真题的答题要点
【上机题命题及答题要点】
1、 近年来江苏省高校上机题目难度有所下降。
本轮
上机命题的难度系数与全国计算机等级考试二级C 语言接近。
2、 改错题一般有3~4个错误。
错误分为两大类,一类
是语法出错,这类错误比较查错和容易修改,即在编译时报的错误 。
另一类是结果出错,即程序的算法出错,这类错误需认真审题。
3、 编程题必须掌握C 语言的文件,应熟悉文件指针的
定义,文件的打开及文件的输入输出。
编程题的固定框架。
必须记忆。
以C01的编程为例。
#include <stdlib.h> /*库函数exit(0)需要*/
#include <stdio.h> /*定义文件指针时需要的头文件*/
………….. int palindrome(char *str, char *r) {
}
void main()
{ FILE *fp;
所有数据类型的说明和定义
函数编程,按【编程要求】
1.编写函数int
if((fp=fopen("t:\\myf2.out","w"))==NULL)
{ printf("\nCan't open the file!"); exit (0);}
函数调用(具体问题具体分析)
结果输出
p rintf("\nMy number is:\n");
fprintf(fp,"\nMy number is:1292340\n");
fclose(fp);
}
4、必须熟悉常见算法。
5、江苏省高校计算机二级C语言上机编程题常考问题:
字符串相关问题、素数相关问题、回文数相关问题、矩阵(二维数组)相关问题、特殊数问题(如,合数、真因子或质因子之和、水仙花数、亲密数、完数、数制转换、哥德巴赫猜想等)。
6、掌握文件输出操作标准形式。
【3月江苏省等考上机真题解析】
江苏省高等学校非计算机专业学生(C01)
计算机基础知识和应用能力等级考试上机试卷
二级C语言(试卷代号C01)
(本试卷完成时间70分钟)
一、改错题(16分)
【程序功能】
判断一个N×N方阵(N为奇数)是否为魔方阵。
魔方阵的判定条件是:方阵中每行、每列、主对角线及副对角线上的数据之和均相等。
例如,以下方阵中,主对角线的数据是8、5、2之和是15,副对角线上的数据6、5、4之和也是15,而且每行、每列数据之和15,因此该项方阵是魔方阵。
8 1 6
3 5 7
4 9 2
【测试数据与运行结果】
屏幕输出:8 1 6
3 5 7
4 9 2
The Array x is a magic square.
1 2 3
5 6 4
9 8 7
The Array x isn’t a magic square.
【含有错误的源程序】
以下源程序已保存在T盘myf1.c文件内,考生可直接打开该文件测试程序。
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define N 3
void fun(int (*a)[N])
{ int i,j,m1,m2,row,colum;
m1=m2=0;
for(i=0; i<N; i++)
{ m1+=a[i][i];
m2+=a[i][N-i-1];
}
if(m1!=m2) return 0;
for(i=0; i<N; i++)
{ row=colum=i;
for(j=0; j<N; j++)
{ row+=a[i][j];
colum+=a[j][i];
}
if((row!=colum)||(row!=m1))
return 0;
}
return 1;。