当前位置:文档之家› 福建省二级C语言-5

福建省二级C语言-5

福建省二级C语言-5
福建省二级C语言-5

福建省二级C语言-5

(总分:100.00,做题时间:90分钟)

一、选择题(总题数:20,分数:40.00)

1.以下关于C语言源程序的叙述中,错误的是______。

(分数:2.00)

A.源程序中的一行可以写多条语句

B.源程序中的一条语句可以写成多行

C.源程序中每一行必须有一个分号√

D.源程序中可用{}把一些语句括起来成为复合语句

解析:

2.若要定义一个符号常量,下列四项中正确的是______。

(分数:2.00)

A.#define PI 3.14159 √

B.#define PI=3.14159

C.#define PI=3.14159;

D.#define PI 3.14159;

解析:

3.若已定义int a=6; ,则表达式a+=a-=a*=a运算后,a的值为______。(分数:2.00)

A.0 √

B.6

C.-24

D.-60

解析:

4.以下程序运行结果是______。

#include<stdio.h>

int main()

{

int x=2, y=3, z;

z=x>y?--x:--y;

printf("%d, %d, %d/n", x, y, z);

return 0;

}

(分数:2.00)

A.2,2,3

B.2,3,2

C.2,2,2 √

D.1,2,2

解析:

5.要使下列程序段输出内容为123,123,45,则正确的输入数据是______。int a, b, c;

scanf("%d, %3d%d", &a, &b, &c);

printf("%d, %d, %d/n", a, b, c);

(分数:2.00)

A.12312345

B.123,123,45

C.123,12345 √

D.123123,45

解析:

6.以下程序运行结果是______。

#include<stdio.h>

int main()

{

int x=1, y=2, z=3, k;

k=x>y?5:y<z?x:y;

printf("%d/n", k);

return 0;

}

(分数:2.00)

A.3

B.2

C.5

D.1 √

解析:

7.若已定义:float a=5.3, b=2.9; ,则下列表达式结果为7的是______。(分数:2.00)

A.a+b

B.(int)a+(int)b √

C.(int)(a+b)

D.int(a+b)

解析:

8.C语言对if嵌套语句的规定:else总是与______配对。

(分数:2.00)

A.第一个if

B.之前最近的且尚未配对的if √

C.缩进位置相同的if

D.之前最近的if

解析:

9.以下程序运行结果是______。

#include<stdio.h>

int main()

{

int i=0, j=0;

while(++i)

{

if(i>10)

break;

if(i%2==0)

continue;

else

j+=i;

}

printf("%d/n", j);

return 0;

}

(分数:2.00)

A.25 √

B.20

C.36

D.30

解析:

10.若已定义int a[5]; ,则数组a中所有元素的初值为______。

(分数:2.00)

A.不确定√

B.1

C.-1

D.0

解析:

11.以下程序运行结果是______。

#include<stdio.h>

int main()

{

int a[3][3]={{1}, {3}, {5}};

int k[3][3]={1, 3, 5};

printf("%d/n", a[2][0]+k[0][2]);

return 0;

}

(分数:2.00)

A.0

B.5

C.10 √

D.8

解析:

12.若已定义char s1[15]="good", s2[]="morning", s3[20]; ,则语句strcpy(s3, strcat(s1, s2)); 的功能是______。

(分数:2.00)

A.将字符串s2连接到s1之后,再将s1复制到s3中√

B.将字符串s1复制到s2中,再连接到s3之后

C.将字符串s2复制到s1中,再将s1连接到s3之后

D.将字符串s2连接到s1之后,再将s3复制到s1中

解析:

13.C语言中用数组名作为函数调用时的实参,则实际传递给形参的是______。

(分数:2.00)

A.数组的第一个元素值

B.数组中全部元素值

C.数组的首地址√

D.数组的元素个数

解析:

14.#define BK 6.28这条预处理命令中,宏名BK代表一个______。

(分数:2.00)

A.常量√

B.双精度数

C.字符串

D.单精度数

解析:

15.若有定义int a=6; int*p=&a; ,则对int*p=&a; 语句的正确解释是______。(分数:2.00)

A.变量a的值赋给指针变量p所指向的变量

B.将变量a的值赋给指针变量p

C.在对p进行说明的同时进行初始化,使p指向a √

D.定义p为整型变量

解析:

16.以下程序的运行结果是______。

#include<stdio.h>

int main()

{

int a[][4]={1, 3, 5, 7, 9, 11};

int*p=&a[0][0];

printf("%d, %d/n", *(p+6), a[1][1]);

return 0;

}

(分数:2.00)

A.0,11 √

B.11,1

C.11,3

D.0,0

解析:

17.若有以下结构类型定义和结构变量声明

struct date

{

int year, month, day;

};

struct userlist

{

char name[20];

char sex;

struct date birthday;

}person;

对结构变量person的出生年份进行赋值时,下面正确的赋值语句是______。(分数:2.00)

A.year=1980;

B.birthday.year=1980;

C.person.birthday.year=1980; √

D.person.year=1980;

解析:

18.以下程序的运行结果是______。

#include<stdio.h>

struet tree

{

char*str;

int k;

}a;

void fun3(struct tree a)

{

a.str="computer";

a.k=20;

}

int main()

{

a.str="microcomputer";

a.k=2;

fun3(a);

printf("%s, %d/n", a.str, a.k);

return 0;

}

(分数:2.00)

https://www.doczj.com/doc/fa7825876.html,puter, 20

B.microcomputer, 2 √

https://www.doczj.com/doc/fa7825876.html,puter, 2

D.microcomputer, 20

解析:

19.以下程序的运行结果是______。

#include<stdio.h>

int main()

{

int a, b, c;

a=100;

b=a>>3;

c=b&15;

printf("%d, %d, %d/n", a, b, c);

return 0;

}

(分数:2.00)

A.100,12,12 √

B.100,12,15

C.12,12,12

D.100,15,15

解析:

20.fscanf函数的正确调用形式是______。

(分数:2.00)

A.fscanf(文件指针,格式字符串,输入表列);√

B.fscanf(格式字符串,文件指针,输入表列);

C.fscanf(格式字符串,输入表列,文件指针);

D.fscanf(文件指针,输入表列,格式字符串);

解析:

二、程序填空题(总题数:1,分数:20.00)

(在每对/**/之间填写内容,完成题目的要求)(分数:20.00)

(1).以下程序用递归方法求Fibonacci数列的前n项(n≤20)。该数列有如下特点:第1、2两个数为1、1,从第3个数开始,该数是其前面两个数之和,即:

#include<stdio.h>

/**/ 1/**/fib(int m)

{

int k;

if(m>2)

k=/**/ 2/**/+fib(m-2);

else

k=1;

return/**/ 3/**/;

}

int main()

{

int n, i;

printf("Input n(n<=20):");

scanf("%d", &n);

printf("/n 1, 1");

for(i=3; i<=n; i++)

{

printf(", %d", fib(/**/ 4/**/));

if(i%10==0)

printf("/n");

}

return 0;

}(分数:10.00)

解析:int fib(m-1) k i

(2).以下程序中inv()函数的功能是将一个字符串str的内容逆序存放。例如:字符串str原内容为:abedef,函数调用后变成:fedcba。

#include<stdio.h>

#include<string.h>

void inv(char*str)

{

int i, j, k;

j=/**/ 1/**/;

for(i=0; i<strlen(str)/2; i++, j--)

{

k=*(str+i);

*(str+i)=*(str+j);

*(str+j)=/**/ 2/**/;

}

}

int main()

{

char test[]="abcdef";

inv(test);

printf("%s/n", test);

return 0;

}(分数:10.00)

解析:strlen(str)-1 k

三、程序改错题(总题数:1,分数:20.00)

(修改每对/**/之间存在的错误,完成题目的要求)(分数:20.00)

(1).以下程序用以完成找出小于60000的整数,这些整数满足:每位数字的阶乘之和刚好等于该数,如145=1!+4!+5!。

#include<stdio.h>

int main()

{

long i, j, s, k, t;

for(i=1; i<=60000; i++)

{

k=i;

/**/ 1 s=1 /**/;

while(k!=0)

{

t=1;

for(j=1;/**/ 2 j<=k/10/**/; j++)

t*=j;

s+=t;

/**/ 3 k%=10/**/;

}

if(i==s)

printf("%ld/n", i);

}

return 0;

}(分数:10.00)

解析:s=0 j<=k%10 k/=10

(2).以下程序中,函数add(int a[N][N], int b[N])的功能是将a数组中每列的最小元素放入b数组中。#include<stdio.h>

#define N 4

void add(int a[N][N], int b[N])

{/**/ 1 int i, j, k, min=0 /**/;

for(j=0; j<N; j++)

{

/**/ 2 min=a[j][0]/**/;

for(i=1; i<N; i++)

if(min>a[i][j])

min=a[i][j];

/**/ 3 b[k]=a[i][j]/**/;

k++;

}

}

int main()

{

int a[N][N]={{1, 2, 3, 5}, {12, 10, 7, 6}, {8, 12, 9, 4}, {11, -6, 15, 13}}, b[N];

int i;

add(a, b);

for(i=0; i<N; i++)

printf("%d", b[i]);

printf("/n");

return 0;

}(分数:10.00)

解析:int i, j, k=0, min min=a[0][j] b[k]=min

四、编程题(总题数:1,分数:20.00)

(补充每对/**/之间的程序段,完成题目的要求)(分数:20.00)

(1).程序中的fun()函数用以完成如下数学表达式。

#include<stdio.h>

#include<math.h>

double fun(double x)

{/**/

/**/

}

int main()

{

printf("fun(-2.6)=%8.3lf/n", fun(-2.6));

printf("fun(0)=%8.3lf/n", fun(0));

printf("fun(1.3)=%8.3lf/n", fun(1.3));

return 0;

}(分数:10.00)

__________________________________________________________________________________________ 正确答案:()

解析:double y;

if(x>0)

y=log10(x)/x;

else if(x==0)

y=0;

else

y=sqrt(1+x*x);

return y;

(2).程序定义了N×N的二维数组a,且在主函数已赋值,请编写函数fun()用以实现数组a各元素(不含最后一行与最后一列)值的重置:各元素的值等于它和相邻右侧、下方、右下方三元素之和平均值的整数。

#include<stdio.h>

#define N 5

void fun(int a[N][N])

{/**/

/**/

}

int main()

{

int a[N][N]={{2, 3, 5, 4, 5}, {3, 4, 2, 5, 3}, {3, 5, 6, 2, 4}, {5, 3, 4, 6, 2}, {4, 3, 2, 6, 5}};

int i, j;

fun(a);

for(i=0; i<N; i++)

{

for(j=0; j<N; j++)

printf("%d", a[i][j]);

printf("/n");

}

return 0;

}(分数:10.00)

__________________________________________________________________________________________ 正确答案:()

解析:int i, j;

for(i=0; i<N-1; i++)

for(j=0; j<N-1; j++)

{

a[i][j]=(a[i][j]+a[i][j+1]+a[i+1][j]+a[i+1][j+1])/4;

}

福建省二级c语言考试试题编程题

福建省二级c语言考试试题编程题打开程序cprog502.完成其中的fun(int a[],int c[])函数,将数组a同元素依次存入数组c 中 列入数组a为{5,1,1,2,6,5,2,7},则数组c为(5,1,2,6,7,-1) fun(int a[],int c[]) { int i,j,k=1; c[0]=a[0]; for(i=1;a[i];i++) {for(j=0;j void main()

{ int num; int count = 0; int a, b, c; for(num = 100; num < 1000; num ++) { a = num / 100; b = num % 100 / 10; c = num % 10; if(a != c && a + b + c == 15) { printf("%d ", num); count ++; } } printf(" 打开程序cprog521,c完成其中的函数fun() 输入1.69,输出:fun(1.690)=6.93.。。。输入3.2 输入-7.6 Double y; If(x>2) y=x*(x-2); else if(x>-1&&x<=2) y=x-1; return y;

c语言三种循环结构

任务1:控制LED 小灯亮灭 1.流程图如下: 2.程序如下: #include #define uint unsigned int #define uchar unsigned char void main() //主函数 { while(1) //while死循环 { if((P3&0x10)==0) //判断P3口上的八位与00010000相与后是否等于0,若是, 则P3.4口为低电平,也就是接在P3.4口上的开关按上了。 P1=0xfe; //当P3.4口上的开关按上了,那么就由用户使接在P1.0口 上的灯亮。 else if((P3&0x20)==0) //和上面的一样,判断P3.5口上的开关是否按上了。 P1=0Xfd; //当P3.5口上的开关按上了,点亮接在P1.1口上的灯。 else if((P3&0x40)==0) //判断P3.6口的开关是否按上了。

P1=0xfb; //当P3.6口上的开关按上了,点亮接在P1.2口上的灯。 else if((P3&0x80)==0) //判断P3.7口的开关是否按上了。 P1=0xf7; //当P3.7口上的开关按上了,点亮接在P1.3口上的灯。 else P1=0xff; //当没有按键按下时,P1口上的全部灯都不亮。 } } 3.仿真结果如下: 4.仿真结果分析: 从仿真图以及程序可以看出,当P3.4口上的开关按下时,不管其它三个开关有没有按下,只有受P3.4口开关控制的那个灯(p1.0口上的灯)才亮,以此类推,当只有P3.7口上的开关按下时,P1.3口上的灯才亮,而其它灯不亮,因为控制其它灯的按键没有按下,接在其它灯的IO口处于高电平状态。

2013年全国计算机等级考试二级C语言考试大纲及重点

2013年全国计算机等级考试二级C语言考试大纲 ◆基本要求 1.熟悉V isual C++ 6.0 集成开发环境。 2.掌握结构化程序设计的方法,具有良好的程序设计风格。 3.掌握程序设计中简单的数据结构和算法并能阅读简单的程序。 4.在V isual C++ 6.0 集成环境下,能够编写简单的C程序,并具有基本的纠错和调试程序的能力 ◆考试内容 一、C语言程序的结构 1.程序的构成,main函数和其他函数。 2.头文件,数据说明,函数的开始和结束标志以及程序中的注释。 3.源程序的书写格式。 4.C语言的风格。 二、数据类型及其运算 1.C的数据类型(基本类型,构造类型,指针类型,无值类型)及其定义方法。 2.C运算符的种类、运算优先级和结合性。 3.不同类型数据间的转换与运算。 4.C表达式类型(赋值表达式,算术表达式,关系表达式,逻辑表达式,条件表达式,逗号表达式)和求值规则。 三、基本语句 1.表达式语句,空语句,复合语句。 2.输入输出函数的调用,正确输入数据并正确设计输出格式。 四、选择结构程序设计 1.用if语句实现选择结构。 2.用switch语句实现多分支选择结构。 3.选择结构的嵌套。 五、循环结构程序设计 1.for循环结构。 2.while和do-while循环结构。 3.continue语句和break语句。 4.循环的嵌套。 六、数组的定义和引用 1.一维数组和二维数组的定义、初始化和数组元素的引用。 2.字符串与字符数组。 七、函数 1.库函数的正确调用。 2.函数的定义方法。 3.函数的类型和返回值。 4.形式参数与实在参数,参数值传递。

福建省计算机二级(c语言)编程含答案

编程题: 第1套 1. 打开考生文件夹中的Cprog011.C ,完成其中的fun1函数,该函数的数学表达式是: 1sin 1()1x x e fun x x ++=+ 例如:fun1(0.76) = 2.175 fun1(3.00) = 5.307 fun1(3.76) = 9.111 2. 打开考生文件夹中的Cprog012.C ,完成其中的函数fun2(int a[ ], int n, int b[ ], int c[ ]),实现: (1)将数组a 中大于-20的元素,依次存放到数组b 中; (2)将数组b 中的元素按照从小到大的顺序存放到数组c 中; (3)函数返回数组b 中的元素个数。 Cprog011.C double fun1(double x) { /**/ double y = 0.0; y=(1+sin(x)+exp(x))/(1+x); return y; /**/ } Cprog012.C int fun2(int a[],int n,int b[],int c[]) { /**/ int j = 0; int i,t,k; for(i=0;i-20) { c[j]=b[j]=a[i]; j++; } for(i=0;ic[k]) { t=c[i]; c[i]=c[k]; c[k]=t; } return j; /**/ } 第2套 1. 打开考生文件夹中的Cprog021.C ,完成其中的函数fun1,该函数的数学表达式是: |6|1() 1.3x e x fun x x +-=+ 例如:fun1(0.76) = 3.582 fun1(3.00) = 5.369 fun1(3.76) = 8.931 2. 打开考生文件夹中的Cprog022.C ,完成其中的函数fun2(char a[ ], char b[ ], char c[ ]),实现:将三个字符串a 、b 、c 从小到大排序后输出。 注意:字符串比较函数为strcmp(str1,str2),字符串赋值函数为strcpy(str1,str2)。 Cprog021.C

C语言打字练习程序课程设计报告

青岛理工大学 《C语言程序设计》 题目打字练习程序 指导教师:李兰老师 姓名: 学号:2011 班级: 专业:计算机科学 地点:现代教育中心机房201 时间:2012.6.26 至2012.6.29

一、内容 本程序主要实现的是对使用者的打字速度进行练习和提高。因为界面友好亲和,因此能让使用者在轻松愉快中练习并快速提高自己的打字速度和准确性。程序主要的功能有记录使用者在本次使用中的击中数和总下落字母的个数之比。并且游戏设置了九个等级,随着数字的增加,等级越高,字母下落的速度逐步提高,这样能够更好的迎合不同水平的用户需求。使用本程序很简单,因为在写代码时,我很注重的是界面的友好,所以,在用户的每次操作前,界面上都有详细的操作提醒,只要跟着提示输入就能很快速地进入并开始练习。 二、上机环境 操作系统:windows XP(win7兼容) 开发工具:VC6.0 三、函数调用关系图 void main( ) start( ) printfScreen( ) levelChoice( ) newWord ( ) moving( ) wordHit( ) result( ) leave( )

四、各函数功能说明 1、void main( ) 主函数 2、void printScreen( ) 刷新屏幕函数 3、int levelChoice( ) 游戏等级选择函数 4、int newWord( ) 生成新字符函数 5、int moving( ) 字符下降函数 6、int wordHit( ) 击中字符函数 7、int result ( ) 结果输出函数 8、int start( ) 程序开始提示操作 9、void leave( ) 函数结束

全国计算机等级考试二级C语言真题

2009年3月二级C语言笔试真题((1)—(10)每小题2分,(11)—(50)每题1分,共60分) 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。 (1)下列叙述中正确的是 A)栈是“先进先出”的线性表 B)队列是“先进先出”的线性表 C)循环队列是非线性结构 D)有序性表既可以采用顺序存储结构,也可以采用链式存储结构 (2)支持子程序调用的数据结构是 A)栈B)树C)队列D)二叉树 (3)某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是 A)10B)8C)6D)4 (4)下列排序方法中,最坏情况下比较次数最少的是 A)冒泡排序 B)简单选择排序 C)直接插入排序 D)堆排序 (5)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是 A)编译软件 B)操作系统 C)教务管理系统 D)汇编程序 (6)下面叙述中错误的是 A)软件测试的目的是发现错误并改正错误 B)对被调试的程序进行“错误定位”是程序调试的必要步骤 C)程序调试通常也称为Debug D)软件测试应严格执行测试计划,排除测试的随意性 (7)耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是 A)提高耦合性降低内聚性有利于提高模块的独立性 B)降低耦合性提高内聚性有利于提高模块的独立性

C)耦合性是指一个模块内部各个元素间彼此结合的紧密程度D)内聚性是指模块间互相连接的紧密程度 (8)数据库应用系统中的核心问题是 A)数据库设计 B)数据库系统设计 C)数据库维护 D)数据库管理员培训 (9)有两个关系R,S如下: 由关系R通过运算得到关系S,则所使用的运算为 A)选择B)投影C)插入D)连接 (10)将E-R图转换为关系模式时,实体和联系都可以表示为A)属性B)键C)关系D)域 (11)以下选项中合法的标识符是 A)1-1B)1—1C)-11D)1-- (12)若函数中有定义语句:intk;,则 A)系统将自动给k赋初值0 B)这时k中值无定义 C)系统将自动给k赋初值-1 D)这时k中无任何值 (13)以下选项中,能用作数据常量的是 A)o115B)0118C))115L (14)设有定义:intx=2;,以下表达式中,值不为6的是A)x*=x+1 B)x++,2*x C)x*=(1+x)

2017年福建省二级C语言试卷真题

(1) 下面叙述正确的是(D )。 A) main( )函数必须位于源程序文件的开头 B) 程序中必需含有自定义函数 C) 每行最多只能写两条语句 D) 所有语句都必须以分号“;”结束 (2) 下面叙述错误的是(D )。 A) C语言规定可逐个引用数组元素但不能一次引用整个数组 B) C语言数组名称是数组在内存中的首地址 C) 数组中每一个元素都属于同一个数据类型 D) C语言数组长度在定义数组时刻不作确定 (3) 以下程序段的运行结果是(C )。 int t[ ][3]={1,2,3,4,5,6,7,8,9,10,11,12}; printf(“%d\n”,t[1][1]); A) 4 B) 3 C) 5 D) 1 (4) 以下程序段的运行结果是(C )。 char str[3][2]={‘a','b','c','\0','e','f'}; printf(“%s”,str[0]); A) abc\0ef B) abcef C) abc D) a (5) 以下程序段的运行结果是(C )。 int f(int c) { c+=2; return c; } main( ) { int a=2,c=5; a=f(a); printf(“%d %d \n”,a,c); } A) 2 4

C) 4 5 D) 2 5 (6) 下面叙述错误的是(D )。 PRICE 等价的符号常量30”命令的作用是定义一个与#define PRICE 30“A) B) C源程序中加入一些预处理命令是为了改进程序设计环境,提高编程效率 C) “#include ”命令的作用是在预处理时将stdio.h文件中的实际内容代替该命令 D) 宏定义也是C语句,必须在行末加分号 (7) 若有定义:int a=2,*p=&a;,则以下(A )均表示地址。 A) &a,p B) a,p C) a,*p D) &a,*p (8) 以下程序段运行后x的值为(C )。 int a[ ]={1,2,3,4,5,6,7,8}; int i,x,*p; x=1; p=&a[1]; for (i=0;i<3;i++) x*=*(p+i); A) 1 B) 120 C) 24 D) 6 (9) 下列(C )对结构类型变量定义是错误的。 A) struct teacher { int num; int age; }; struct teacher teach1; B) struct { int num; int age; } teach1, teach2; C) struct

C语言入门经典(第四版)8-程序的结构

本文由泽五令贡献 ppt文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 C入门经典(第4版) 入门经典( 第08章 程序的结构 08章 如第1 如第1章所述,将程序分成适度的自包含单元是开发任一程序的基本方式. 当工作很多时,最明智的做法就是把它分成许多便于管理的部分,使每一部分 能很轻松地完成,并确保正确完成整个工作.如果仔细设计各个代码块,就可 以在其他程序中重用其中的一些代码块. . C入门经典(第4版) 入门经典( 8.1 程序的结构 如概述所言,C程序是由许多函数组成的,其中最重要的就是函数main(), 如概述所言,C程序是由许多函数组成的,其中最重要的就是函数main(), 它是执行的起点.本书介绍库函数printf()或scanf()时,说明了一个函数可以调 它是执行的起点.本书介绍库函数printf()或scanf()时,说明了一个函数可以调 用另一个函数,完成特定的工作,然后调用函数继续执行.不考虑存储在全局 变量中的数据的负面影响,程序中的每个函数都是一个执行特定操作的自包含 单元 . 变量的作用域和生存期 变量的作用域和函数 C入门经典(第4版) 入门经典( 8.1.1 变量的作用域和生存期 .1.1 在前面所有的例子中,都是在定义main()函数体的起始处声明程序的变量. 在前面所有的例子中,都是在定义main()函数体的起始处声明程序的变量. 事实上,可以在任何代码块的起始处定义变量.这有什么不同吗?这是绝对不 同的.变量只存在于定义它们的块中.它们在声明时创建,在遇到下一个闭括 号时就不存在了 . C入门经典(第4版) 入门经典( 8.1.2 变量的作用域和函数 .1.2 在讨论创建函数的细节之前,最后要讨论的是,每个函数体都是一个块 (当然,它可能含有其他块).因此,在一个函数内声明的自动变量是这个函数 当然,它可能含有其他块) 的本地变量,在其他地方不存在.所以在一个函数内部声明的变量完全独立于 在其他函数内声明的变量.可以在不同的函数内使用相同的变量名称,它们是 完全独立的. C入门经典(第4版) 入门经典( 8.2 变量的作用域和函数 本书的程序广泛使用了内置函数,例如printf()或strcpy().还介绍了在按 本书的程序广泛使用了内置函数,例如printf()或strcpy().还介绍了在按 名称引用内置函数时如何执行它们,如何通过函数名称后括号内的参数,给函 数传递信息.例如printf()函数的第一个参数通常是一个字符串,其后的参数 数传递信息.例如printf()函数的第一个参数通常是一个字符串,其后的参数 (可能没有)是一系列变量或要显示其值的表达式 . 可能没有) 定义函数 Return语句 Return语句 C入门经典(第4版) 入门经典( 8.2.1 定义函数 创建一个函数时,必须指定函数头作为函数定义的第一行,跟着是这个 函数放在括号内的执行代码.函数头后面放在括号内的代码块称为函数体. C入门经典(第4版) 入门经典( 8.2.2 return语句 return语句 return语句允许退出函数,从调用函数中发生调用的那一点继续执行. return语句允许退出函数,从调用函数中发生调用的那一点继续执行. return语句最简单的形式如下: return语句最简单的形式如下: return; C入门经典(第4版) 入门经典( 8.3 按值传递机制 这个重点是:valuel和value2的副本作为变元传送给函数,而没有传送变 这个重点是:valuel和value2的副本作为变元传送给函数,而没有传送变 量本身.也就是说,函数不能改变存储在value1或value2中的值.例如,如果 量本身.也就是说,函数不能改变存储在value1或value2中的值.例如,如果 给两变量输入4.0和6.0,编译器会在堆栈上创建这两个值的副本,在调用 给两变量输入4.0和6.0,编译器会在堆栈上创建这两个值的副本,在调用 average()函数时,average()函数会访问这些副本.这个机制是C average()函数时,average()函数会访问这些副本.这个机制是C语言中给函 数传送变元值

计算机二级C语言考试内容

计算机二级 公共基础知识 基本要求 1.掌握算法的基本概念。 2.掌握基本数据结构及其操作。 3.掌握基本排序和查找算法。 4.掌握逐步求精的结构化程序设计方法。 5.掌握软件工程的基本方法,具有初步应用相关技术进行软件开发的能力。 6.掌握数据库的基本知识,了解关系数据库的设计。 考试内容 一、基本数据结构与算法 1.算法的基本概念;算法复杂度的概念和意义(时间复杂度与空间复杂度)。 2.数据结构的定义;数据的逻辑结构与存储结构;数据结构的图形表示;线性结构与非线性结构的概念。 3.线性表的定义;线性表的顺序存储结构及其插入与删除运算。 4.栈和队列的定义;栈和队列的顺序存储结构及其基本运算。 5.线性单链表、双向链表与循环链表的结构及其基本运算。 6.树的基本概念;二叉树的定义及其存储结构;二叉树的前序、中序和后序遍历。

7.顺序查找与二分法查找算法;基本排序算法(交换类排序,选择类排序,插入类排序)。 二、程序设计基础 1.程序设计方法与风格 2.结构化程序设计。 3.面向对象的程序设计方法,对象,方法,属性及继承与多态性。 三、软件工程基础 1.软件工程基本概念,软件生命周期概念,软件工具与软件开发环境。 2.结构化分析方法,数据流图,数据字典,软件需求规格说明书。 3.结构化设计方法,总体设计与详细设计。 4.软件测试的方法,白盒测试与黑盒测试,测试用例设计,软件测试的实施,单元测试、集成测试和系统测试。 5.程序的调试,静态调试与动态调试。 四、数据库设计基础 1.数据库的基本概念:数据库,数据库管理系统,数据库系统。 2.数据模型,实体联系模型及E―R图,从E―R图导出关系数据模型。 3.关系代数运算,包括集合运算及选择、投影、连接运算,数据库规范化理论。

福建省高等学校计算机等级考试(二级C语言)选择题试题库

第二部分:改错题(每题10分) 第一套卷: cmody011.c #include #include #include #include void main() { char str1[100], t[200]; int i, j; /**/ i = 0; /**/ j=0 clrscr(); strcpy(str1, "4AZ18c?Ge9a0z!"); for (i = 0; i #include #include #include

#define M 50 double fun(int n) { double y = 0.0; int i,j; j=0; for(i=1;;i++) { /**/ if((i<10)&&(i%3==0)) /**/if((i>10)&&(i%3==0))(根据题义) { /**/ y+=1/i; /**/ y+=1.0/i; j++; } if(j==n) break; } return y; } void main() { clrscr(); printf("fun(8) = %8.3lf\n", fun(8)); } ************************************************************************* 第二套卷 ************************************************************************* cmody021.c #include void main() { /**/ int i; j; /**/ int i, j;(概念错误) for (i=1;i<=5;i++) { for (j=1;j<=10-2*i;j++) printf(" "); /**/ for (j=1;j<=5;j++) /**/ for (j=1;j<=2*i-1;j++) *号的位置printf("* "); printf("\n"); } } cmody022.c #include #include

c语言入门经典必背个程序

c语言入门经典必背个程序 c语言入门经典必背18个程序 1 、/* 输出9*9 口诀。共9 行9 列,i 控制行,j 控制列。*/ #include "stdio.h" main() {int i,j,result; for (i=1;i<10;i++) { for(j=1;j<10;j++) { result=i*j; printf("%d*%d=%-3d",i,j,result);/*-3d 表示左对齐,占3 位*/ } printf("\n");/* 每一行后换行*/ } } 2 、/* 古典问题:有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔 子都不死,问每个月的兔子总数为多少? 兔子的规律为数列1,1,2,3,5,8,13,21....*/ main() { long f1,f2; int i; f1=f2=1; for(i=1;i<=20;i++) { printf("%12ld %12ld",f1,f2); if(i%2==0) printf("\n");/* 控制输出,每行四个*/ f1=f1+f2; /* 前两个月加起来赋值给第三个月*/ f2=f1+f2; /* 前两个月加起来赋值给第三个月*/ } } 3 、/* 判断101-200 之间有多少个素数,并输出所有素数及素数的个数。 程序分析:判断素数的方法:用一个数分别去除 2 到sqrt( 这个数) ,如果能被整除, 则表明此数不是素数,反之是素数。*/ #include "math.h" main()

全国计算机等级考试二级C语言考点(完整版)

C语言二级考点(完整版) 第一章…… C语言基础知识 第二章……顺序结构 第三章……选择结构 第四章. ……循环结构 第五章……函数 第六章……指针 第七章……数组与指针 第八章……数组与函数 第九章……字符串 第十章……结构体与共用体 第十一章……文件 第一章C语言基础知识 考点1. 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=35 6、#include 注意:(1)以#号开头(2)不以分号结尾

全国计算机二级考试C语言(最全复习资料)

二级公共基础知识作为必考内容出现,出题形式为选择题前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】书写格式 每条语句的后面必须有一个分号,分号是语句的一部分。一行内可写多条语句,一个语句可写在多行上。 【考点6】标识符 是标识名字的有效字符序列,可以理解为C程序中的单词。 标识符的命名规则是: (1)标识符只能由字母、数字和下划线组成,字母区分大小写。 (2)标识符的第一个字符必须是字母或下划线,不能为数字。 C语言标识符分如下3类 (1)关键字。它们在程序中有固定的含义,不能另作他用。如int、for、switch等。 (2)预定义标识符。预先定义并具有特定含义的标识符。如define、include等。 (3)用户标识符。用户根据需要定义的标识符,符合命名规则且不与关键字相同。 【考点7】常量与变量 常量是指在程序运行过程中,其值不能改变的量。常量分为整型常量、实型常量、字符常量、字符串常量、符号常量5种。在程序运行过程中其值可以改变的量称为变量。C语言中没有字符串变量。存放字符串使用字符数组。 【考点8】整型数据 整型常量有十进制、八进制、十六进制三种表示形式,没有二进制形式。八进制整型常量加前导数字0,十六进制常量加前导0X,八进制常量中不会出现8。 整型变量可分为基本整型(int)、短整型(short)、长整型(long)、和无符号整型(unsigned)。一个基本整型占4个字节。其它类型的整型占用字节数和取值范围详见教材第9页。 【考点9】实型数据 实型数据有两种表示形式:小数形式和指数形式。掌握判定指数形式合法性。 口诀:E前E后必有数,E后必须为整数。 实型变量分为单精度型(float)和双精度型(double),单精度型占四个字节。 【考点10】算术运算 算术运算符一共有+、—、*、/、%这五个。求余运算要求运算对象只能为整型,除法运算符两边运算对象都为整型时,运算结果也为整型即舍掉小数部分。 【考点11】强制类型转换 将一个运算对象转换成指定类型,格式为(类型名)表达式,注意小括号位置。 【考点12】赋值 赋值运算符为“=”,不同于关系等于“= =”。赋值表达式格式为:变量名=表达式,赋值运算符左边必须为变量,赋值运算是把赋值运算符右边表达式的值赋给左边变量。

福建省计算机二年级C语言上机题解析

福建省计算机二年级C语 言上机题解析 Prepared on 22 November 2020

第一部分:程序修改题 #include <> #include <> #include <> #include <> void main() { char str1[100], t[200]; int i, j; /**/ i = 0; /**/ 改成j = 0; clrscr(); strcpy(str1, "4AZ18cGe9a0z!"); for (i = 0; i #include <> #include <> #include <> #define M 50 double fun(int n) { double y = ; int i,j; j=0; for(i=1;;i++) { /**/ if((i<10)&&(i%3==0)) /**/ 改成i>10 { /**/ y+=1/i; /**/ 改成y+=i; j++; }

if(j==n) break; } return y; } void main() { clrscr(); printf("fun(8) = %\n", fun(8)); } #include <> void main() { /**/ int i,j;/**/ 改成int i,j,k; for(i=1;i<=6;i++) { for(k=1;k<=10+i;k++) printf(" "); for(j=1;j<=7-i;j++) printf("*")/**/ : /**/ 改成; printf("\n"); } getch(); } #include <> #include <> /**/int fun();/**/ 该处不是函数说明,应该去掉分号 { int hen,cock,chicken,n=0; clrscr(); for(cock=0;cock<=50;cock+=1) for(hen=0;hen<=100;hen=hen+1) { chicken=2*(100-hen-2*cock); /**/ if(cock+hen+chicken=100) /**/ 赋值号改成== { n++; printf("%d-->hen:%d,cock:%d,chicken:%d\n",n,hen,cock,chicken); if(n==20) getch(); } } return n; } void main() { int num;

全国计算机等级考试二级笔试样卷C语言程序设计(含答案)

全国计算机等级考试二级笔试样卷C语言程序设计 【打印】【字体:大中小】【关闭】 一、选择题((1)~(10)、(21)~(40)每题2分,(11)~(20)每题2分,共70分) 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。 (1)下列选项中不符合良好程序设计风格的是 A)源程序要文档化B)数据说明的次序要规范化 C)避免滥用goto语句D)模块设计要保证高耦合、高内聚 (2)从工程管理角度,软件设计一般分为两步完成,它们是 A)概要设计与详细设计B)数据设计与接口设计

C)软件结构设计与数据设计 D)过程设计与数据设计 (3)下列选项中不属于软件生命周期开发阶段任务的是 A)软件测试B)概要设计 C)软件维护 D)详细设计 (4)在数据库系统中,用户所见的数据模式为 A)概念模式B)外模式C)内模式D)物理模式 (5)数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和A)编码设计B)测试阶段C)运行阶段 D)物理设计 (6)设有如下三个关系表 R S T

下列操作中正确的是 A)T=R∩S B)T=R∪S C)T=R×S D)T=R/S (7)下列叙述中正确的是 A)一个算法的空间复杂度大,则其时间复杂度也必定大 B)一个算法的空间复杂度大,则其时间复杂度必定小 C)一个算法的时间复杂度大,则其空间复杂度必定小 D)上述三种说法都不对 (8)在长度为64的有序线性表中进行顺序查找,最坏情况下需要比较的次数为A)63 B)64 C)6 D)7 (9)数据库技术的根本目标是要解决数据的

福建省计算机二级c语言选择题题库2011

答案试题 C 1. 在C语言源程序中,以下叙述正确的是()。 A. main函数必须位于文件的开头 B. 每行只能写一条语句 C. 程序中的一个语句可以写成多行 D. 每个语句的最后必须有点号 C 2. 关于C语言的源程序的叙述中,错误的是()。 A. C语言的源程序由函数构成 B. main函数可以书写在自定义函数之后 C. 必须包含有输入语句 D. 一行可以书写多个语句 C 3. 关于C语言数据类型的叙述,正确的是()。 A. 枚举类型不是基本类型 B. 数组不是构造类型 C. 变量必须先定义后使用 D. 不允许使用空类型 C★P6 4. C程序中main函数的位置()。 A. 必须在最开始 B. 必须在系统库函数后面 C. 可以在自定义函数后面 D. 必须在最后 B 5. C语言的函数体由()括起来。 A. () B. { } C. [ ] D. /* */ D 6. 关于C语言的叙述中,不正确的是()。 A. C程序可由一个或多个函数组成 B. C程序必须包含一个main()函数 C. C程序的基本组成单位是函数 D. 注释说明只能位于一条语句的后面 D 7. 以下叙述不正确的是()。 A. C程序的执行总是从main函数开始v B. 一个C源程序必须包含一个main函数 C. C语言程序的基本组成单位是函数 D. 在编译C程序源程序时,可发现注释中的拼写错误 C 8. 结构化程序设计的三种基本结构是()。 A. 函数结构、分支结构、判断结构 B. 函数结构、嵌套结构、平行结构 C. 顺序结构、分支结构、循环结构 D. 分支结构、循环结构、嵌套结构

C 9. 对于C语言源程序,以下叙述错误的是()。 A. 可以有空语句 B. 函数之间是平等的,在一个函数内部不能定义其它函数 C. 程序调试时如果没有提示错误,就能得到正确结果 D. 注释可以出现在语句的前面 D★P39 10. 下面关于C语言用户标识符的描述,正确的是()。 A. 不区分大小写 B. 用户标识符不能描述常量 C. 类型名也是用户标识符 D. 用户标识符可以作为变量名 D 11. 以下()是正确的变量名。 A. 5f B. if C. f.5 D. _f5 D 12. 以下()是正确的常量。 A. E-5 B. 1E5.1 C. 'a12' D. 32766L D 13. 以下()是正确的变量名。 A. a.bee B. -p11 C. int D. p_11 C 14. 以下()是正确的字符常量。 A. "c" B. '\ \' ' C. 'W' D. "\32a" A ★P52 15. 以下()是不正确的字符串常量。字符常量是一对‘’。。字符串常量一对“” A. 'abc' B. "12'12" C. "0" D. " " B P40 16. 以下()是错误的整型常量。 A. -0xcdf B. 018 /* 以0开头的是八进制数 C. 0xe D. 011 B 17. 以下()是正确的浮点数。 A. e3 B. .62

C语言循环结构教学设计方案

《C语言循环结构》教学设计方案 一、教学内容分析 循环结构是面向过程编程中三种结构中最重要的一种结构,学好它是学好这门课程的关键。循环结构的实质是重复执行一系列语句,这种重复性是在循环条件的有效控制之下完成的。程序的关键在于如何控制循环的条件,在恰当的时机执行循环或退出循环。 二、学习者分析 循环结构是一种比较复杂的结构,在C语言中,循环结构主要包括for、while和do-while 三种语句,其中for语句的应用更为普遍一些。循环语句的用法对于有程序设计经验的学生来说轻而易举,但是对于那些没有经验的初学者来说,难度却不小。在一堂课的设计过程中,引例的作用至关重要。一个好的引例能把抽象问题简单化、具体化,有利于学生理解掌握。在学习循环结构时可先利用现实生活中的一些具体实例来说明什么是循环以及为什么要研究循环让一名初学者尽快摆脱日常的思维定式,更加透彻地理解和掌握程序设计中的基本思想,领会程序设计的精髓,总结出程序设计中每一种程序设计结构的本质及适合解决的问题,是高级语言程序设计这门课程在讲授过程中,应该时刻注意的问题。 三、教学目标 1.知识与能力 掌握循环构造的基本特点;区分多种不同类型循环结构的运行过程;掌握循环结构的格式及应用方法。 2.过程与方法 首先学会区分多种不同类型的循环结构,而后学会定义及应用方法,利用上机熟练应用技巧。 3.情感态度与价值观 我们必须抱有自己想学习的心态,多去问老师一些问题,那么你的漏洞将会越来越少,程序量和代码量才会越来越多。

四、重点难点及处理 1.循环语句的的分类和定义 For循环、while循环和do-while循环 特点:在一个程序中可以通过变换语句来使用不同的循环语句,而不改变程序 的功能。 2.循环语句的引用 例如:要从1累加到100 使用For循环:for(sum,=0,i=1;i<=100;i++) sum=sum+i 使用while循环:while(i<=100) sum=sum+i 使用do-while循环:do {sum=sum+i;} while(i<=100) 五、教学准备 1. PPT教学课件 2. 实验操作:Visual C++6.0软件平台,PC电脑,教学机房,网络课堂。 六、教学思路(教学策略等) 在一堂课的设计过程中,引例的作用至关重要。一个好的引例能把抽象问题简单化、具体化,有利于学生理解掌握。在学习循环结构时可先利用现实生活中的一些具体实例来说明什么是循环以及为什么要研究循环。现在我们可以提出一个问题:在计算机程序设计的世界里是否也有类似的这种相同操作重复出现的问题呢?利用最简单累加求和的例子。 例:求1+2+3+4+5+…+100的和。 下面就可以引出本节课的重点,通过分别使用For循环、while循环和do-while循环来完成本程序,我们在整个过程中都做着重复的、相同的事情,也就是前面所说的循环,在试着写出比较简单的程序时,可以试着选择素数或者奇数累加来增加难度,还可以使得让学生接受和探究双重循环。 七、教学过程 教学引入 掌握掌握循环结构的基本特点:for语句、while语句和do-while语句 如何计算1+2+3+4+…+100

计算机二级C语言考试编程题题库

计算机c语言编程题库 1、求100之内自然数中最大的能被17整除的数。 void main() { int i; for(i=100;i>0;i--) if(i%17==0)break; printf("%d\n",i); } 2、已知a,b,c都是1位整数,求当三位整数abc、cba的和为1333时a、b、c的值。 void main() { int a,b,c; for(a=1;a<=9;a++) { for(b=0;b<=9;b++) { for(c=1;c<=9;c++) if(a*100+b*10+c+c*100+b*10+a==1333) printf("%d,%d,%d\n",a,b,c); } } } 3、计算并输出200-400之间不能被3整除的整数的和。 void main() { int i,sum=0; for(i=200;i<=400;i++) if(i%3!=0) sum=sum+i; printf("%d\n",sum); } 4、从键盘输入10个数,统计非负数的个数,并计算非负数的和。 void main() { int i,n=0,sum=0; int a[10]; printf(“请输入10个数:”);

for(i=0;i<10;i++) scanf(“%d”,&a[i]); for(i=0;i<10;i++) if(a[i]>=0) { sum=sum+a[i]; n++;} printf("非负个数是%d,sum=%d\n",n,sum); } 5、求100之内自然数中偶数之和。 void main() { int i,sum=0; for(i=0;i<=100;i++) if(i%2==0) sum=sum+i; printf("sum=%d\n",sum); } 6、输入5个数,求和并输出。要求编写求和的函数。 void main() { int b(int x[],int n); int sum=0; int a[5]; int i; printf("请输入5个数:"); for(i=0;i<5;i++) scanf("%d",&a[i]); sum=b(a,5); printf("sum=%d\n",sum); } int b(int x[],int n) { int i,sum=0; for(i=0;i<5;i++) sum=sum+x[i]; return sum; } 7、编程计算1*2*3+3*4*5+5*6*7+...+99*100*101的值。 void main() { int i,sum=0; for(i=1;i<=99;i=i+2) sum=sum+i*(i+1)*(i+2); printf("%d\n",sum); } 8、编写程序,将用户输入的字符串中所有的字符a用*代替,然后输出。void main()

相关主题
文本预览
相关文档 最新文档