班级__________姓名___________学号_________得分___________
一.选择题(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不管有单文件去解决一个问题,还是用多文件解决问题,一般都需要三个部分,即主模块部分、自定义模块部分、自定义模块的声明部分。 ()
8用C语言做出来的程序是结构化程序,而用C++做出来的程序是面向对象的程序。 ()
9对于定义的每一个变量,如果要取得这个变量的固定地址,方法是用运算符“*”。 ()
10当用到系统定义的模块的时候,要包含系统的头文件,如果要用到自己定义的模块时,要包含自己定义的头文件。 ()
三.画图题-画出模块图并写出相应表达式(20分,每小题10分,图占5分,形式占3分,归属占2分)
1画模块图,并写出形式和归属:根据半径和高度(小数),返回圆柱体积。
2画模块图,并写出形式和归属:根据输入的3个数(整数),返回排序结果。
四.编程题(40分,第1题10分,第2题30分)
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模块代码: |
姓名___________班级__________学号_________得分___________
一.选择题(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题 |
模块代码: |
学号___________ 姓名____________班级___________得分_______
一.选择题(20分)
1以下一维数组a的正确定义是( )
(A) int a(10);
(B)
int n=10,a[n];
(C) int n;cin>>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[1,3]
(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];表示定义的是( )
(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++中标准字符串最后都放一个’
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); } |
改错 |
|
|
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题,请在下面作图模型结构图