1模型模块单元过程考核... 1

2结构编程单元过程考核... 4

3构造单元过程考核... 7

 

1模型模块单元过程考核

班级__________姓名___________学号_________得分___________

一.选择题(20分,每小题2分)

1.一个int整数在vc编译环境下占(  )个字节空间。

(A)1                                (B)2                           (C)3                     (D)4

2.可执行文件的后缀名是( 

(A)cpp                             (B)exe                        (C)obj                  (D)lnk

3.字符’a’’A’ASCII码分别是( 

(A)97 65                          (B)65 97                    (C)01 10              (D)88 29

4.vc编译环境下,按以下(  )键能够单步执行程序

(A)F10                             (B)F5                         (C)F7                   (D)CTRL+F7

5. 以下(  )是c/c++语言合法的自定义标识符。

(A)void                            (B)test_3                     (C)if                    (D)x*y

6.已知:

       int a=5,b=5;

       float  x=6.0,y=3.5;

以下表达式的值是(  )。

       int(a/2+y+b)+x

(A)16.0                        (B)15.5                          (C)14                   (D)14.5

7.以下述叙正确的是(   

(A)一个c/c++源程序可以由一个或多个函数组成

(B)一个c/c++源程序可以有多个main函数

(C) c/c++程序的基本组成单位是文件

(D)c/c++程序中注释说明只能位于一条语句的后面

8.代码char c=’b’cout<<c+1;的运行结果是( 

(A)c                                 (B)98                         (C)99                   (D)b

9.以下哪种表示一个换行( 

(A)’/n’                             (B)’\n’                        (C)’n’                  (D)’011’

10. error C2065: 'a' : undeclared identifier,说明什么?( 

(A)a没有定义

(B)a定义了但使用地方不对

(C)这是连接出错了

(D)a重复定义了

二.判断题(20分,每小题2分)

1变量要先定义,后使用,不能够不定义就使用。                                            ()

2当定义一个变量的时候,系统立即分配一个固定的空间交给这个变量使用,这个空间里的值是随机的。在程序里,可以改变空间里的值,但不能够改变这段空间的位置.。()

3程序编译的目的是为了产生一个可用的可执行文件。                                     ()

4模块的形参可以是变量,也可以是常量。                                                       ()

5’0’’\0’没有区别。                                                                                        ()

6不同类型的指针变量之间有一个明显的区别就是:每种类型的指针变量在移动的时候跨度不一样,比如整数指针变量,移动的时候就是两个字节,而字符指针变量,移动的时候就是一个字节,所以不同指针变量不能直接相互赋值。       ()

7不管有单文件去解决一个问题,还是用多文件解决问题,一般都需要三个部分,即主模块部分、自定义模块部分、自定义模块的声明部分。                                                                                                     ()

8C语言做出来的程序是结构化程序,而用C++做出来的程序是面向对象的程序。 ()

9对于定义的每一个变量,如果要取得这个变量的固定地址,方法是用运算符“*”。    ()

10当用到系统定义的模块的时候,要包含系统的头文件,如果要用到自己定义的模块时,要包含自己定义的头文件。                                                                                                                                    ()

三.画图题-画出模块图并写出相应表达式(20分,每小题10分,图占5分,形式占3分,归属占2分)

1画模块图,并写出形式和归属:根据半径和高度(小数),返回圆柱体积。

2画模块图,并写出形式和归属:根据输入的3个数(整数),返回排序结果。

四.编程题(40分,第110分,第230分)

1编写模块:根据三角形的三边(小数),返回这个三角形的面积。

2编写模块:根据给定的2个整数求出最大数和最小数(提醒:要求编写的模块使用传递地址方法,一次性得到最大值和最小值)。并编写主模块测试此模块的正确性。

模型模块、数据类型过程考核答题卡

一.答题表

1

2

3

4

5

6

7

8

9

10

 

 

 

 

 

 

 

 

 

 

二.答题表

1

2

3

4

5

6

7

8

9

10

 

 

 

 

 

 

 

 

 

 

三.答题表

1

 

2

 

四.答题表

1

自定义模块代码:

2

自定义模块代码:

main模块代码:

 


2结构编程单元过程考核

姓名___________班级__________学号_________得分___________

一.选择题(20分)

1结构化程序设计的三种基本控制结构是(

(A) 顺序、选择和循环                       (B) 递归、网状和循环

(C) 模块、递推和循环                              (D) 顺序、选择和转向

2已知w=0,x=1,y=2,z=3,a=-3,b=13;则执行语句a=w>x&&(b=y>z);a,b的值为

(A) 0,13                                                           (B) -3,13             

(C) 0,12                                                    (D) -3,0

3* int a=1,b=2,x,y;则表达式y=(x=1*10,2*a<b?a:b),则y的值是

(A) 2                                                       (B) 0                  

(C) 10                                                       (D) 1

4*变量y值为2执行do y++; while(y++<4);变量y的值是

(A)  5                                                     (B) 4                   

(C)  3                                                       (D) 6

5*以下程序代码,程序执行后sum的值是

int main()

{

int i , sum;  

for(i=1;i<6;i++) sum+=i;

printf("%d\n",sum);

return 0;

}

(A) 17                                                     (B) 15                  

(C) 2                                                           (D) 不确定

 

判断题20

1 do {} while循环和while{……}循环一样,循环体可一次都不执行。 

2执行以下语句int a=16,*p=&a;变量p的值是16

3*递归,简单地说就是自己调用自己。(

4预处理有三种方式,实际上就是在编译前,将源代码部分内容置换掉。(

5*宏定义如下:#define M(x)   x<0?-1:x= =0?0:1;此描述是正确的。(

 

三.改错题(20分,共有5个错误,每个错误改正正确得4分)

1.1!+2!+3!+4!+5!+6!+...+20! 代码如下

int  main( )

{

float n , s ,t ; /*$ERROR1$*/

     for ( n=1; n<=20 ; ++n )

{

t= t * s ;   /*$ERROR2$*/

s= s + t ;

}

printf("1!+2!+3!+4!+5!+6!+...+20! =%e \n" , s);

return 0;

}

2*.给出模块求两个整数的最大公约数,代码如下:

int maxCommoDivisor(int m,int n)    /*$ERROR3$*/

int main( )

{

       int m,n;

       cin>>m>>n;

       cout<<maxCommoDivisor(m,n);

       return 0;

}

int maxCommoDivisor(int m,int n)

{

       int r;

       do

       {

              r=m%n;

              m=n;

              n=r;

       } while(r<>0);   /*$ERROR4$*/

       return r;       /*$ERROR5$*/

}

 

编程题(40分,前两题各15分,最后题10分)

1*编写模块,根据给定年份范围(2个整数),在模块内部显示所有的闰年。

2编写模块,根据给定的一个整数,判断是否是素数并返回真假标记。

3*编写模块,根据给定的x(小数),n(整数),求x+x2/2!+x3/3!+ +xn/n!的值并返回。

(提示:求每项看成分子与分母按不同方式改变。分母的改变可参考改错题第1)

结构编程考核答题卡

一.答题表

1

2

3

4

5

 

 

 

 

 

二.答题表

1

2

3

4

5

 

 

 

 

 

三.答题表

*$ERROR1$*

 

*$ERROR2$*

 

*$ERROR3$*

 

*$ERROR4$*

 

*$ERROR5$*

 

 

四.答题表

1

模块代码:

 

 

 

 

 

 

 

2

模块代码:

 

 

 

 

 

 

 

 

 

 

3

模块代码:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


3构造单元过程考核

学号___________ 姓名____________班级___________得分_______

一.选择题(20分)

1以下一维数组a的正确定义是(

(A) int a(10)                                    (B) int n=10a[n];

(C) int ncin>>n; int a[n];                        (D) const int N=10; int a[N];

2设有定义: int s[ ]={1,3,5,7,9};*p=&s[0]; 值为5的表达式是

(A) *(a+2)                                                 (B) *(p+2)                  

(C) *(a+3)                                                 (D) *(p+3)

3使用文件指针方案读磁盘上文本文件,读一个字符常用的函数是

(A) fgetc                                             (B)getchar

(C) fputc                                             (D) putchar

4设有语句int a[ ]={3,4,5,9,8,7}; 则表达式a[4]-a[0]的值是

(A)-6                                                       (B) 6                  

(C) 5                                                        (D) -5

5定义二维数组如int a[3][4]则对a数组某元素的正确引用是

       (A) a[2][4]                                                         (B) a[13]          

(C) a[1+1][0]                                               (D) a(2)(1)

6将字符数组b赋给字符数组a的方法是 

(A) strCpy(a,b)                                          (B)strCpy(b,a)    

(C) strcpy(a,b)                                             (D)strcpy(b,a)

7定义int *p[3];表示定义的是(

(A)指针数组                                                    (B)定义出错         

(C)数组指针                                               (D)整数数组

8代码如:int a[ ]={1,2,3 }, i=1,*p=a; 根据定义和语法分析,下面不正确的表达是(

(A) a[p-a]                                                  (B) *(&a[i])         

(C) p[i]                                                    (D) *(*(a+i))

9下面代码,错误的表示方法是(

 (A) char name[20];name=”xyz”;                    (B) char name[20]=”xyz”;

(C) char name[20],*p;p=”xyz”;;                  (D) char name[20],*p=name;p=”xyz”;

10结构体数组和指针变量的定义语句如:struct{int x;} y[2],*p=y;则下列表达式中不能正确表示结构体成员的是(

(A) (*p).x                                     (B) *(p+1).x;

(C) y[0].x;                                                    (D) (y[1])>x;

判断题10

1一维数组的核心指标有两个,数组名和长度。  

2 C/C++中标准字符串最后都放一个0’字符,从而表示结束。(

3结构体的长度是各成员长度之和。(

4 二进制文件指里面放的全是字符的ASCII码的文件。(

5一个函数的返回值是多种多样的,不仅可以是数值,也可返回指针。(

三.改错题(20分,每个错误改正得4分)

程序

用途

下面程序将输入的数字字符串序列转化成一个整数,如数字字串"123",转成123

下面程序是删除字符串中所有数字字符,如字串"a12b3",转成"ab"

代码

#include <stdio.h>

main(){

char c[10];

  int j,k=0;

  gets(c);

  j=strlen(c);

  for(int i=0;i<j;i++)

    if(c[i]>='0'|| c[i]<='9') //ERROR1

      k=k*10+c[i];     //ERROR2

  printf("k=%d\n",&k);   //ERROR3

}

#include "stdio.h"

main(){

int n=0,i=0;

char c[80];

gets(c);    

while (c[i]!='0') //ERROR4

  {

       if(c[i]<'0'||c[i]>'9') {c[n]=c[i];n++;}

       else  i++; //ERROR5

}

c[n]='\0'; 

printf("%s",c);

}

改错

 

 

编程题(50分)

1编写模块getMin,根据给定的一维整形数组,返回最小值。(15分)

2编写模块strLen,根据给定的一个字符串,返回字符串的长度。(15分)

3编写模块getPosition,根据给定的固定以逗号分隔的字符串,返回第i个子串的开始位置标号。如给定字符串为:"aa,bb,cc,dd",则第2个子串的开始位置标号是3,第3个子串的开始位置标号是6。提示模块形式:int getPosition(char *pS,int n)//n表示第n (10)

4设计题:制作“图书管理系统”,要求完成的功能:1输入图书,2显示图书,3排序图书(如3.1按价格排序,3.2按书号排序,3.3按类别排序等),4查找图书(如4.1按书名查找,4.2按作者查找等),5借阅图书,6归还图书,7统计分析(如7.1统计最受欢迎图书,7.2统计平均借阅书数,7.3统计各类别学生借书总数等)。现已经确定图书数据结构采用结构体数组(如Book bookAll[50000];)请画出系统的模型结构图,兼顾小组合作,以便于小组后序的分工合作完成代码。10分)

提醒:模型图中至少要体现3种归属;至少要包括5个自定义模块;函数的形式要写全。

 

 

选择题

1

2

3

4

5

6

7

8

9

10

 

 

 

 

 

 

 

 

 

 

判断题

1

2

3

4

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

改错题

1

2

 

 

 

四.编程题

1题需编写的模块代码

2题需编写的模块代码

 

 

 

 

 

 

 

 

 

 

 

3题主模块代码

3题需编写的模块代码

int main()

{

         char str[]="aa,bb,cc,dd";

         int n,pos;

         printf("请输入要查找的子串号");

         scanf("%d",&n);

         pos=getPosition(str,n);//核心模块调用

         if (pos==-1)

         {

                   printf("没有找到,您输入的号码太大了");

         }

         else printf("%d串的开头位置在:%d",n,pos);

}

 

 

 

 

 

 

 

 

 

 

4题,请在下面作图模型结构图