文档视界 最新最全的文档下载
当前位置:文档视界 › 计算机程序设计基础

计算机程序设计基础

计算机程序设计基础
计算机程序设计基础

计算机程序设计基础

——精讲多练C/C++语言

程序的基本结构

1、在屏幕上显示如下图形:

****************

* Hello World *

****************

#include

using namespace std;

int main() {

cout<<"****************"<

cout<<"* Hello World *"<

cout<<"****************"<

return 0;

}

2、编写一个通用计算器程序,当用户输入两个数后,可以计算并输出这两个数的和、差、积、商。

#include

using namespace std;

int main() {

double x,y,sum,sub,mult,div;

cout<<"Please enter the two Numbers for calculation:";

cin>>x>>y;

sum=x+y;

sub=x-y;

mult=x*y;

div=x/y;

cout<

cout<

cout<

cout<

cin>>a>>b;

c=sqrt (a*a+b*b);

cout<<"Calculation results:hypotenuse c="<

return 0;

} 5、编写程序,计算32)7.9/()2.3()1(6+-++-=x x x

x x y 在X=3时的值。 #include

#include

using namespace std;

int main () {

double x,y;

cout<<"Please enter the one Number for calculation:";

cin>>x;

y=sqrt (x)-6*(x+1/x)+((x-3.2)*(x-3.2))/((x+7.7)*(x+7.7)*(x+7.7)

);

cout<<"Calculation results: y="<

return 0;

}

6、编写一个程序,当输入某学生“英语”课程的平时成绩、期中考试和期末考

试成绩及各项占总成绩百分比后,可以计算出该生的“英语”课程的最终成绩。

#include

using namespace std;

int main (){

double peacetime,midterm, terminal,total,rate1,rate2,rate3;

char p1,p2,p3;

cout<<"Please input peacetime result:"<

cin>>peacetime;

cout<<"Please input peacetime result accounts for the percentage of

total grade:"<

cin>>rate1>>p1;

cout<<"Please input the mid-term examination results:"<

cin>>midterm;

cout<<"Please input midterm examination result accounts for the

percentage of total grade:"<

cin>>rate2>>p2;

cout<<"Please input peacetime result:"<

cin>>terminal;

cout<<"Please input midterm examination result accounts for the

percentage of total grade:"<

cin>>rate3>>p3;

total=(peacetime*rate1+midterm*rate2+terminal*rate3)/100;

cout<<"The students for the final result:"<

return 0;

}

数据类型与表达式

1、编写一个程序,当输入某一个整数i,输出i/3的值。变换不同的i,观察输出结果的变化。

#include

#include

using namespace std;

int main() {

int i;

cout<<"Please enter the one number: i=";

cin>>i;

cout<<"i/3="<

return 0;

}

2、编写一个程序,当用户输入一个四位无符号整数后,程序能够反序输出这个四位数。

#include

using namespace std;

int main(){

int a,b=0;

cout<<"Please enter a need to reverse order number:";

cin>>a;

while(1>0){

b*=10;

b+=a%10;

a/=10;

if(a==0) break;}

cout<

return 0;

}

3、编写一个程序,要求完成以下要求。

(1)提示用户输入任意的三个小数;

(2)显示这个三个小数;

(3)将这三个小数相加,并显示其结果;

(4)将结果按四舍五入方法转换成整数并显示。

#include

using namespace std;

int main()

{

double a,b,c;

cout<<"Please input three decimals:";

cin>>a>>b>>c;

cout<<"The three decimals is:"<

cout<

cout<<"The result is:"<

cout<<"a+b+c="<

cout<<"After rounding:"<

cout<

return 0;

}

4、编写一个程序,将字符串love译成密码。加密规则是:将原来的字母用字母表中其后面的第3个字母的来替换,如字母c就用f来替换,字母y用b来代替。#include

using namespace std;

char encryption(char ch){

if(ch>='a'&&ch<='z')

ch=((int)(ch-94))%26+'a';

else if(ch>='A'&&ch<='Z')

ch=((int)(ch-62))%26+'A';

return ch;

}

int main(){

char ch1,ch2,ch3,ch4;

ch1='L';

ch2='o';

ch3='v';

ch4='e';

cout<<"string to be unencrypted is:"<

is:"<

return 0;

}

5、编写一个程序,当用户输入某一天的两个任意时刻以后,求出这两个时刻的时间差(按秒计算)并输出。

#include

using namespace std;

int time(int hour,int minute,int second){

int total;

total=hour*3600+minute*60+second;

return total;

}

int main(){

int hour1,hour2,minute1,minute2,second1,second2;

char p1,p2,p3,p4;

cout<<"Please input end time:"<

cin>>hour1>>p1>>minute1>>p2>>second1;

cout<<"Please input the initial moment:"<

cin>>hour2>>p3>>minute2>>p4>>second2; cout<<(time(hour1,minute1,second1)-time(hour2,minute2,second2));

return 0;

}

程序的控制结构

1、编写一个程序,实现下列分段函数的求值(即当用户从键盘输入任意一个X

值,程序可以求出对应的Y 值并输出)。

?????≤≤≤<+=x x x x x y 1,1

0,10,13

#include

using namespace std;

int main (){

double x,y;

cout<<"Please enter an arbitrary number:x"<

cin>>x;

if(x<0)

y=x+1;

else{

if(x>=1)

y=x*x*x;

else

y=1;}

cout<

return 0;

} 2、利用公式: ,计算π的近似值,直到最后一项的绝对值小于410-为止。

#include

#include

using namespace std;

int main (){

double sum=0,i=1,j=-1;

do {

j=j*(-1);

sum=sum+1*j/(2*i-1);

i++;

} while (fabs(1*j/(2*i-3))>=1e-4);

cout<<"PI="<<4*sum<

(7)

1513114+-+-≈π

return 0;

}

3、完全数是其各因子之和正好等于本身的数,如6=1+2+3,28=1+2+4+7+14,所以6、28都是完全数。请变成找出2~10000之内的所有完全数。

#include

using namespace std;

int main (){

for(int i=2;i<=10000;i++){

int sum=0;

for(int j=1;j<=i/2;j++){

if(i%j==0){sum=sum+j;}

}

if(i==sum)

cout<

else

continue;

}

return 0;

}

4、求解猴子吃桃问题。猴子在第一天摘下若干个桃子,当即就吃了一半,又感觉不过瘾,于是就多吃了一个。以后每天如此,到第10天想吃时,发现就只剩下一个桃子。请编程计算第一天猴子摘的桃子个数。

#include

using namespace std;

int main (){

int total=1;

for(int day=9;day>0;day--){

total=(total+1)*2;

}

cout<<"The first day the peach number of being picked by monkey:"<

return 0;

5、}一个小球从100m高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?

#include

using namespace std;

int main (){

double h=100,journey=-100;

for(int i=1;i<=10;i++){

journey=journey+h*2;

h=h/2;

}

cout<<"journey="<

cout<<"height="<

return 0;

}

6、编写一个算命游戏程序,可以预测前世。

#include

using namespace std;

int main (){

int birthday,sum,i;

cout<<"Please input your birthday:";

cin>>birthday;

while(birthday>=10){

sum=0;

while(birthday>0){

i=birthday%10;

sum=sum+i;

birthday=birthday/10;

}

birthday=sum;

}

switch(birthday){

case1: cout<<"Your ancestor is immortal, congratulations!"<

case 2: cout<<"Your ancestor is the emperor or noble, once your majesty!"<

case3: cout<<"Your ancestor is noble, congratulations!"<

case4: cout<<"Your ancestor is intellectual, Have you ever yue!"<

case5: cout<<"Your ancestor is rich, in this life?"<

case6: cout<<"Your ancestor is poor, cherish life!"<

case 8: cout<<"Your ancestor is an actor,what a good abundant life is!"<

case9: cout<<"Your ancestor is monk, amida Buddha!"<

default: cout<<"How could it be, unless your ancestor is the Christ,jesus"<

}

return 0;

}

7、百钱买百鸡问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。凡百钱买百鸡,问鸡翁、母、雏各几何?

#include

using namespace std;

int main (){

for(int i=0;i<=20;i++){

for(int j=0;j<=33;j++){

for(int k=0;k<=100;k++){

if((5*i+3*j+k/3.0)==100&&(i+j+k)==100){

cout<<"rooster:"<

cout<

}}}}

return 0;

}

8、现有36块砖,要由36个人来搬,假定男人一次可以搬4块砖,女人一次可以搬3块砖,两个小孩才能抬动一块砖,如果要求一次将36块砖都搬完,请编程计算这36人中的男、女、小孩各是多少?

#include

using namespace std;

int main (){

for(int i=0;i<=9;i++){

for(int j=0;j<=12;j++){

for(int k=0;k<=36;k++){

if((4*i+3*j+k/2.0)==36&&(i+j+k)==36){

cout<<"men:"<

cout<

}}}}

return 0;

}

数组和字符串

1、编写程序,读取一个非负实数序列并计算它们的平均值,用一个负数-1表示输入的终止,要求显示平均值的平时还要显示数据的个数,程序执行样例如下:

Please enter a nonnegative real sequence, - 1 says input terminated:

0 1 2 3 4 5 6 7 8 9 -1

count=10

average=4.5

#include

using namespace std;

int main (){

int count=0;

double average,sum=0,i;

cout<<"Please enter a nonnegative real sequence, - 1 says input

terminated:"<

while (cin>>i){

if (i==-1) break ;

count++;

sum=sum+i;

}

average=sum/count;

cout<<"count="<

cout<<"average="<< average<

return 0;

}

2、编写程序,对于一个已经排好序的数组,当用户输入一个数后,要求能够按

原来的规律将它插入数组中相应位置。

#include

using namespace std;

int main (){

int a[10]={2,4,6,8,10,12,14,16,18},x,i,j;

cout<<"The series have been sequenced:"<

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

cout<

cout<<"Please input the number to insert:"<

cin>>x;

for (i=0;i<10;i++){

if (a[i]>=x) break ;}

if (i>=10) a[9]=x;

else {

for (j=8;j>=i;j--)

a[j+1]=a[j];

a[i]=x; }

cout<<"Inserted after x:"<

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

cout<

return 0;

}

3、编写程序,将4阶方阵转置(即按主对角线为轴,将矩阵的行和列位置互换)

如下所示。?????

???????1115597164858761324?????

???????1115597164858761324 #include

#include

using namespace std;

int main(){

int array[4][4]={{4,6,8,9},{2,7,4,5},{3,8,16,15},{1,5,7,11}};

for(int i=0;i<4;i++){

for(int j=0;j<4;j++){

array[j][i]=array[i][j];

cout<

cout<

}

return 0;

}

4、编写程序,找出一个4阶方阵主对角线中最小的元素,并输出最小值的行列号。

#include

using namespace std;

int main(){

int array[4][4]={{4,6,8,9},{2,7,4,5},{3,8,16,15},{1,5,7,11}};

int min1=array[0][0],min2=array[0][3],y;

for(int i=1;i<4;i++){

if(array[i][i]

if(array[i][3-i]

}

y=min1

for(int i=0;i<4;i++){

if(y==array[i][i])

cout<<"min:"<

if(y==array[i][3-i])

cout<<"min:"<

return 0;

}

5、显示出杨辉三角形的前n行,本题n=10。

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

1 6 15 20 15 6 1

1 7 21 35 35 21 7 1

1 8 28 56 70 56 28 8 1

1 9 36 84 126 126 84 36 9 1

1 10 45 120 210 25

2 210 120 45 10 1

1 11 55 165 330 46

2 462 330 165 55 11 1

1 1

2 66 220 495 792 924 792 495 220 66 12 1

#include

#include

#include

using namespace std;

unsigned long fac(int n){

unsigned long result=1;

while(n>1){

result=result*n;

n=n-1;}

return result;

}

int main(){

int n;

cout<<"Please input line number:"<

cin>>n;

for(int i=0;i

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

cout<

cout<

return 0;

}

6、编写一个求字符数组长度的程序,要求使用以下两种方法分别编写两个程序:(1)利用字符数组的结构特点求解,不使用strlen()函数。

#include

using namespace std;

int main(){

char str[80];

int i=0;

cout<<"Please input string to count:"<

gets(str);

while (str[i]!='\0')

i++;

cout<<"count="<

return 0;

}

(2)直接调用求字符长度函数strlen()。

#include

#include

using namespace std;

int main(){

char str[80];

cout<<"Please input string to count:"<

gets(str);

cout<<"count="<

return 0;

}

7、编写一个字符串的程序。要求使用以下两种方法分别编写两个程序。

(1)利用字符数组的结构特点来实现功能,不能使用strcpy()函数;

#include

using namespace std;

int main() {

char str1[80],str2[80]="0";

int i=0;

cout<<"Please input str1:"<

cin>>str1;

cout<<"str1="<

cout<<"str2="<

while (str1[i]!='\0'){

str2[i]=str1[i];

i++;}

cout<<"After being reproduced:"<<"\n"<<"str1="<

return 0;

}

(2)直接调用字符串复制函数strcpy()。

#include

#include

using namespace std;

int main() {

char str1[80],str2[80]="0";

cout<<"Please input str1:"<

cin>>str1;

cout<<"str1="<

cout<<"str2="<

strcpy(str2,str1);

cout<<"After being reproduced:"<<"\n"<<"str1="<

return 0;

}

函数

1、编写一个函数,用于计算前n个数的阶乘和,即0!+1!+......+n!,相应函数声明为:

int sumfac(int n);

#include

using namespace std;

int sumfac(int &n);

int main() {

int m=0;

cout<<"Please enter an integer HFM and demand tupper:m=";

cin>>m;

cout<

return 0;

}

int sumfac(int &n){

long sum=0;

for(int j=0;j<=n;j++){

long fac=1;

for(int i=j;i>0;i--){

fac=fac*i;}

sum=sum+fac;}

return sum;

}

2、编写一个函数,能够求出三个整数中的最大数。

#include

using namespace std;

int max(int array[3]);

int main() {

int array[3];

cout<<"Please input arrays:";

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

cin>>array[i];

cout<

return 0;

}

int max(int array[3]){

int max=array[0];

for(int j=1;j<3;j++){

if(array[j]>max) max=array[j];}

return max;

}

3、编写一个函数,判断某一个整数是否为回文数。所谓回文数是指其各位数字左右对称的整数,例如12321、789987、1等。调用改函数打印出1000~10000之间所有的回文数。

#include

using namespace std;

void palindrome(int &a);

int main()

{ cout<<"1000`10000,Palindrome number:";

for(int i=1000;i<10000;i++){

palindrome(i);

}

return 0;

}

void palindrome(int &a){

int b=0,temp=a;

while(a>0){

b*=10;

b+=a%10;

a/=10;}

if(temp==b){

cout<

4、编写一个函数,其函数声明为:

int RevesInt(int m);

其中参数m是一个5位正整数,该函数能够分解出m的个位、百位和万位数字,并形成一个反序三位整数返回。例如:

?对于整数30251,形成的反序整数是123;

?对于整数90980,形成的反序整数是99。

#include

using namespace std;

int RevsInt(int &m);

int main(){

int m;

cout<<"Please enter a five digits:"<

cin>>m;

cout<

return 0;}

int RevsInt(int &m){

int m1,m2,m3;

m1=m/10000;

m2=(m/100)%10;

m3=m%10;

return (m3*100+m2*10+m1);}

5、编写一个函数,其函数声明为:

void draw(int n)

其功能是根据整数n的个数(0

编写主程序,测试该函数。测试样式如下(对应n为6时的图形)

A

ABC

ABCDE

ABCDEFG

ABCDEFGHI

ABCDEFGHIJK

#include

using namespace std;

void triangle(int &n);

int main() {

int m=0;

cout<<"Please enter an integer HFM and demand tupper:m=";

cin>>m;

triangle(m);

return 0;

}

void triangle(int &n){

for(int i=0;i

for(int j=0; j<14-i;j++){

cout<<" ";}

for(int k=0; k<2*i+1;k++){

cout<

cout<

}

6、编写程序,当用户从键盘输入公元年、月、日三个整数值(年份范围为

2001~2099),能够计算该日是这一年得第几天。程序运行样例如下:

请输入年(2001~2009)、月、日: 2005 2 28

2005-2-28是当年第59天

提示:应考虑润年的情况,在2001-2099年范围内凡是被4整除的都是润年,可利用函数判断输入的年份是否为润年,函数原型声明为:

int IsleapYear(int year);

#include

using namespace std;

int IsLeapYear(int &year);

int main() {

int year,month,date,i,day;

char character;

cout<<"Please enter year(2001~2099), month, day:2005-2-28e.g.";

cin>>year>>character>>month>>character>>date;

day=date;

if(IsLeapYear(year)==0){

for(i=1;i

if(i==1||i==3||i==5||i==7||i==8||i==10||1==12) day+=31;

else if(i==2) day+=28;

else day+=30;

}}

else

{

for (i=1;i

if (i==1||i==3||i==5||i==7||i==8||i==10||1==12) day+=31; else if (i==2) day+=29;

else day+=30;

}}

cout<<"Today is the "<

}

int IsLeapYear (int &year){

int flag;

if ((year%4==0)&&(year%400!=0))

flag=0;

else flag=1;

return flag;}

7、使用递归的方法编写求斐波那契数列的第n 项的函数。、斐波那契数列的具体含义见例3-14,其形式为:

#include

using namespace std;

int fib (int n);

int main () {

int n;

cout<<"Please input the item of the Fibonacci:"<>n;

cout<

return 0;

}

int fib (int n){

if (n==0) return 1;

else if (n==1) return 1;

return fib(n-1)+fib(n-2);

}

9、编写求幂函数:对于任意给定的实数X 和整数K>0,计算K X 。

#include

#include

1,1,2,3,5,8,13,21,34,55,........... 其通项为: F 0=1 F 1=1 . .Fn=Fn-1 + Fn-2

using namespace std;

double power(double &x,int &k);

int main() {

double m;

int n;

cout<<"Please input the accomodation:"<

cin>>m;

cout<<"Please input the index:"<

cin>>n;

cout<

return 0;

}

double power(double &x,int &k){

double value=1;

for(int i=0;i

value*=x;

}

return value;

}

X,其中X可以是整形量、长整型和双精度数值, 9、编写求幂函数,能够计算K

k为正整数。要求使用以下两种方法分别写出两个程序。

(1)函数重载。(附:可将函数用头文件进行封装)

#include

#include

using namespace std;

double power(int &x,int &k){

double value=1;

for(int i=0;i

value*=x;}

return value;

}

double power(long &x,int &k){

double value=1;

for(int i=0;i

value*=x;}

return value;

}

double power(double &x,int &k){

double value=1;

for(int i=0;i

value*=x;}

return value;

}

int main() {

int m1;

long m2;

double m3;

int n1,n2,n3;

cout<<"Please input the accomodation m1(int),m2(long),m3(double):"<

cin>>m1>>m2>>m3;

cout<<"Please input the index:"<

cin>>n1>>n2>>n3;

cout<

"<

return 0;}

(2)函数模板。

#include

using namespace std;

template

T1power(T1 x,T2 k){

T1 value=1;

for(int i=0;i

value*=x;}

return value;

}

int main() {

int m1;

long m2;

double m3;

int n1,n2,n3;

cout<<"Please input the accomodation m1(int),m2(long),m3(double):"<

cin>>m1>>m2>>m3;

cout<<"Please input the index:"<

cin>>n1>>n2>>n3;

cout<

return 0;}

指针和引用

1、编写程序,把10个整数10,20,......赋予某个int型数组,然后用int型指针输出该数组元素的值。

#include

using namespace std;

int main() {

int array[10]={10,20,30,40,50,60,70,80,90,100};

for(int i=0;i<10;i++){

cout<<*(array+i)<<" ";}

return 0;}

2、编写程序,将用户输入的一个位数不确定的正整数按照标准的三分节格式输出,例如,当用户输入62668634时,程序应该输出82,668,634。

#include

using namespace std;

int main() {

int n,i=1;

char a[80],*ptr;

ptr=a;

cout<<"Please input a integer:";

cin>>n;

do{ if(i%4){

*ptr=n%10+'0';

n=n/10;}

else *ptr=',';

ptr++;

i++;

}while(n);

cout<<"The standrad output:";

do{ptr--;

i--;

cout<<*ptr;

}while(i>1);

cout<

return 0;}

3、编写一个程序,用于将一个整型数组可将前n项的所有元素全部置为0(要求用指针)。

#include

using namespace std;

int main() {

int array[100],n;

cout<<"Please input a integer:";

cin>>n;

for(int i=0;i

*(array+i)=0;

cout<<*(array+i)<<" ";}

return 0;}

4、编写字符串反转函数,该函数可将指定字符串中的字符顺序颠倒重排。函数声明为。

void mystrrev(char *string)

其中参数string为待反转的字符串,该函数无返回值。

#include

#include

using namespace std;

void mystrrev(char*string);

int main() {

char *string,str[80];

cout<<"Please input string:"<

gets(str);

string=str+strlen(str)-1;

mystrrev(string);

return 0;}

void mystrrev(char*string){

do{

cout<<*string;

string--;}while(*string!='\0');

}

5、编写一个函数,用于比较两个字符串前面若干个字符是否相同,比较时不区分大小写字符。函数原型声明为:

int mystrnicmp(char*str1, char*str2, int n)

其中参数str1和str2为待比较的字符串,n为要比较的字符数,返回值表示比较结果(如为0,表示两个字符串前n个字符相同)

#include

#include

#include

using namespace std;

int mystrnicmp(char*str1, char*str2, int n);

int main() {

char str1[80],str2[80];

int n;

cout<<"Please input the first string:"<

gets(str1);

cout<<"Please input the second string:"<

gets(str2);

cout<<"Please input digits to compare string:";

cin>>n;

cout<

return 0;}

int mystrnicmp(char*str1, char*str2, int n){

int x=0;

char *ptr1=str1;

char *ptr2=str2;

for(int i=0;i<=n;i++){

c语言第五章 选择结构程序设计(习题册答案)

第五章选择结构程序设计 基础练习(A) 一、填空题 1、关系表达式的运算结果是逻辑值。C语言没有逻辑型数据,以1代表“真”,以0代表“假”。 2、逻辑运算符!是单目运算符,其结合性是由右结合性。 3、C语言提供的三种逻辑运算符是&&、|| 、!。其中优先级最高的为!,优先级最低的为| | 。 4、逻辑运算符两侧的运算对象不但可以是0和1,或者是0和非0的整数,也可以是任何类型的数据。系统最终以0 和非0 来判定它们属于“真”或“假”。 5、设y为int型变量,请写出描述“y是偶数”的表达式(y%2==0)。 6、设x,y,z均为int型变量,请写出描述“x或y中有一个小于z”的表达式x2&&x<3。 8、判断char型变量ch是否为大写字母的正确表达式是(ch>=‘A’)&&(ch<=‘Z’)。 9、当a=3,b=2,c=1时,表达式f=a>b>c的值是0。 10、当a=5,b=4,c=2时,表达式a>b!=c的值是1。 11、已知A=7.5,B=2,C=3.6,表达式A>B&&C>A||AB的值是0。 12、若a=6,b=4,c=2,则表达式!(a-b)+c-1&&b+c/2的值是1。 13、有int x,y,z;且x=3,y=-4,z=5,则表达式(x&&y)==(x||z)的值为1。 14、有int x,y,z;且x=3,y=-4,z=5,则以下表达式的值为1。 !(x>y)+(y!=z)||(x+y)&&(y-z) 15、有int a=3,b=4,c=5,x,y;,则以下表达式的值为0。 !(x=a)&&(y=b)&&0 16、if (!k) a=3;语句中的!k可以改写为k= =0,使其功能不变。 二、选择题 1、逻辑运算符两侧运算对象的数据类型(D)。 A)只能是0或1 B)只能是0或非0正数 C)只能是整型或字符型数据 D)可以是任何类型的数据 2、以下关于运算符优先顺序的描述中正确的是(C)。 A)关系运算符<算术运算符<赋值运算符<逻辑与运算符 B)逻辑与运算符<关系运算符<算术运算符<赋值运算符 C)赋值运算符<逻辑与运算符<关系运算符<算术运算符 D)算术运算符<关系运算符<赋值运算符<逻辑与运算符 3、下列运算符中优先级最高的是(B)。 A)< B)+ C)&& D)!= 4、为判断字符变量c的值不是数字也不是字母时,应采用下述表达式(D)。 A)c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122 B)!(c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122) C)c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122 D)!(c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122) 5、能正确表示“当x的取值在[1,100]和[200,300]范围内为真,否则为假”的表 达式是(C)。 A) (x>=1)&&(x<=100)&&(x>=200)&&(x<=300) B) (x>=1)||(x<=100)||(x>=200)||(x<=300) C) (x>=1)&&(x<=100)||(x>=200)&&(x<=300)

《程序设计基础》记分作业4答案

《程序设计基础》记分作业4答案 单选题。(共16道试题,每题3分) 1、树的典型特点是各个结点之间是( C )。 A、没有直接关系 B、一对一关系 C、一对多关系 D、多对多关系 2、采用顺序空间作为栈的存储空间时,在进行栈操作的时候( D )。 A、不需要判断栈是否空,不需要判断栈是否满 B、不需要判断栈是否空,但需要判断栈是否满 C、需要判断栈是否空,不需要判断栈是否满 D、需要判断栈是否空,也需要判断栈是否满 3、在存储线性表时,( C )。 A、只能采用顺序存储结构 B、只能采取链式存储结构 C、可以任意采用顺序或链式存储结构 D、没有明确的结论 4、线性表表长的含义是( C )。 A、线性表所占用的内存字节数量 B、线性表占用的内存和外存的字节数量 C、线性表中所包含的元素数量 D、线性表在内存中元素的数量 5、采用链式存储保存线性表与采用顺序存储保存线性表进行比较,在链式存储线性表时进行插入操作的执行效率( C )。 A、比较低 B、一样 C、比较高 D、没有明确结论 6、对于一张一般的图,其中的各个结点之间的关系是( D )。 A、集合关系 B、一对一关系 C、一对多关系 D、多对多关系 7、数据的存储结构分为( D )。 A、线性存储结构和非线性存储结构 B、有序存储结构和非有序存储结构 C、树型存储结构和图型存储结构 D、链式存储结构和顺序存储结构 8、进行折半查找的条件是( A )。 A、数据有序且采用顺序存储方式 B、数据不需要有序,但需要顺序存储 C、数据有序且采用链式存储方式 D、数据不需要有序,但需要链式存储 9、采用链式存储的有序数据要进行查找,可以采用( A )。 A、顺序查找 B、折半查找 C、顺序索引查找 D、顺序或折半查找 10、下面4句结论中只有一句是错误的,它是( B )。

C语言程序设计课程设计题目

1 一元稀疏多项式的运算 问题描述:设有两个带头指针的单链表表示两个一元稀疏多项式A、B,实现两个一元稀疏多项式的处理。 实现要求: ⑴输入并建立多项式; ⑵输出多项式,输出形式为整数序列:n,c1,e1,c2,e2……c n,e n,其中n是多项式的项数,c i,e i分别为第i项的系数和指数。序列按指数降序排列; ⑶多项式A和B相加,建立多项式A+B,输出相加的多项式; ⑷多项式A和B相减,建立多项式A-B,输出相减的多项式; ⑸多项式A和B相乘,建立多项式A×B,输出相乘的多项式; ⑹设计一个菜单,至少具有上述操作要求的基本功能。 测试数据: (1) (2x+5x8-3.1x11)+(7-5x8+11x9) (2) (6x-3-x+4.4x2-1.2x9)-(-6x-3+5.4x2+7.8x15) (3)(x+x2+x3)+0 (4)(x+x3)-(-x-x-3) 2 成绩排序 假设某年级有4个班,每班有45名同学。本学期有5门课程考试,每门课程成绩是百分制。假定每个同学的成绩记录包含:学号、姓名各门课程的成绩共7项,其中学号是一个10位的字符串,每个学生都有唯一的学号,并且这4个班的成绩分别放在4个数组中,完成以下操作要求: ⑴编写一个成绩生成函数,使用随机数方法,利用随机函数生成学生的各门课程的成绩(每门课程的成绩都是0∽100之间的整数),通过调用该函数生成全部学生的成绩; ⑵编写一个平均成绩计算函数,计算每个同学的平均成绩并保存在成绩数组中; ⑶用冒泡排序法对4个班的成绩按每个同学的平均成绩的以非递增方式

进行班内排序; ⑷用选择排序法对4个班的成绩按每个同学的平均成绩的以非递增方式进行班内排序; ⑸对已按平均成绩排好序的4个班的同学的构造一个所有按平均成绩的以非递增方式排列的新的单链表; ⑹设计一个菜单,至少具有上述操作要求的基本功能。 3 迷宫问题 问题描述:以一个m×n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。 实现要求: ⑴实现一个以链表作存储结构的栈类型,然后编写一个求解迷宫的非递归程序。求得的通路以三元组(i,j,d)的形式输出,其中:(i,j)指示迷宫中的一个坐标,d表示走到下一坐标的方向。 ⑵编写递归形式的算法,求得迷宫中所有可能的通路; ⑶以方阵形式输出迷宫及其通路。 [测试数据] 迷宫的测试数据如下:左上角(1,1)为入口,右下角(8,9)为出口。 1 2 3 4 5 6 7 8 实现提示:

C++程序设计基础课后答案 第五章

5.1 阅读下列程序,写出执行结果 1.#include < iostream.h > struct data { int n ; float score ; } ; void main() { data a[3] = { 1001,87,1002,72,1003,90 } , *p = a ; cout << (p++)->n << endl ; cout << (p++)->n << endl ; cout << p->n++ << endl ; cout << (*p).n++ << endl ; } 2.#include < iostream.h > struct employee { char name[ 20 ] ; char sex ; } ; void fun( employee *p ) { if( (*p).sex == 'm' ) cout << (*p).name << endl ; }

void main() { employee emp[5] = { "Liming", 'm', "Wangxiaoping", 'f', "Luwei", 'm' } ; int i ; for( i=0; i<3; i++ ) fun( emp+i ) ; } 3. #include < iostream.h > struct node { char * s ; node * q ; } ; void main() { node a[ ] = { { "Mary", a+1 }, { "Jack", a+2 }, { "Jim", a } } ; node *p = a ; cout << p->s << endl ; cout << p->q->s << endl ; cout << p->q->q->s << endl ; cout << p->q->q->q->s << endl ; } 4.#include < iostream.h > class A

计算机程序设计基础习题册(含答案)

《计算机程序设计基础》 习 题 册

班级学号姓名成绩一、单选题 1.C++源程序文件的默认扩展名为A。 A) cpp B) exe C) obj D) lik 2.由C++源程序文件编译而成的目标文件的默认扩展名为C。 A) cpp B) exe C) obj D) lik 3.由C++目标文件连接而成的可执行文件的默认扩展名为B。 A) cpp B) exe C) obj D) lik 4.编写C++程序一般需经过的几个步骤依次是B。 A)编译、编辑、连接、调试 B)编辑、编译、连接、调试 C)编译、调试、编辑、连接 D)编辑、调试、编辑、连接 5.程序中主函数的名字为 A 。 A) main B) MAIN C) Main D) 任意标识符 6.下面四个选项中,均是不合法的用户标识符的选项的是C。 A) A p_o do B)float lao _A C)b-a goto int D)_123 temp INT 7.下列变量名中合法的是C。 A) B)C)Tom B) 3a66 C) _6a7b D) $ABC 8.存储以下数据,占用存储字节最多的是 D 。 A) 0 B) ‘0’ C) “0” D) 0.0 9.在C++语言中,字符型数据在内存中的存储形式是D。 A) 补码 B) 反码 C) 原码 D) ASCII码 10.若有说明语句:char c =’\072’;则变量c A。 A) 包含1个字符 B) 包含2个字符 C) 包含3个字符 D) 说明不合法,变量的值不确定 二、填空题 1.C++头文件和源程序文件的扩展名分别为.h和.cpp 。 2.C++语言规定,标识符只能由字母、数字、下划线三种字符组成,而且第一个字符必须是字母或下划线。 3.一条表达式语句必须以__分号_;___作为结束符。 4.用于从键盘上为变量输入值的标准输入流对象是___cin____;用于输出表达式值的标准输出流对象是__cout____。 5.在一个C++程序文件中,若要包含另外一个头文件或程序文件,则应使用以_#include___标识符开始的预处理命令

程序设计基础课程设计

设计题目:学生成绩管理系统班级:计0902 姓名:付乐颖 学号:20091221067 完成日期:2010.10.15

1. 课程设计目的和要求 随着科学的发展和社会的进步,许多过去有人工处理的繁杂事务开始交付计算机来完成。学生成绩管理系统可以说是一个得力助手,它利用计算机对学生成绩进行统一管理,实现学生成绩信息管理工作流程的系统化、规范化和自动化,提高了广大教师的工作效率。 本程序旨在训练学生的基本编程能力,了解管理信息系统的开发流程,熟悉C语言的文件等的各种基本操作,使学生能对C语言的文件操作有一个更深的理解。为进一步开发出高质量的信息管理系统打下坚实的基础。 2. 课程设计任务内容 学生包含以下信息项:学号、姓名、学院、班级、高数成绩、英语成绩、C语言成绩、总分、平均分。系统的主要功能包括: 1. 创建学生成绩信息文件,根据提示输入学生的各项信息,计算出总分和平均分,然后按学号对学生信息进行排序,并将排序后的学生成绩信息存储到一个二进制文件中。 2. 增加学生信息,在原有学生信息文件的基础上增加新的学生成绩信息,要求:增加后的学生信息仍按学号排序,并继续保存至原文件。 3. 删除学生信息,提示用户输入要进行删除操作的学号,如果在文件中有该信息存在,则将该学号所对应的学生信息删除,否则输出提示信息,并提示用户选择是否继续进行删除操作。 4. 修改学生信息,提示用户输入要进行修改操作的学号,如果在文件中有该息存在,则将提示用户输入该学号对应的要修改的选项,结果保存至原文件,并提示用户选择是否继续进行修改操作。 5. 按不同条件对学生信息进行查询操作,输出满足条件的学生信息。 (1) 按学号查询,输入一个学号,输出对应的学生信息。

C程序设计(第四版)_谭浩强_第五章_课后习题答案

循环结构程序设计 P115 5.1 用while计算1至100的合. #include int main() { int i=1,sum=0; while(i<=100) //对于需要运算的值,要么在运算前可以赋值,要么一开始要指定. { sum=sum+i; i++; } printf("The sum is %d .\n",sum); return 0; } #include int main() { int i=1,sum=0; do// do-while可以做的事,用while都可以做到. { //do-while先做一次执行,再判断条件,而while却是先做一个条件,再执行. sum=sum+i; i++; }while(i<=100); printf("The sum is %d .\n",sum); return 0; } P118 5.3 比较do-while与while的差别. #include

{ int i,sum=0; printf("Please input a number :"); scanf("%d",&i); //输入10以内,正常,11的话,则sum仍然是0. while(i<=10) { sum=sum+i; i++; } printf("The sum of 1-10 is %d .\n",sum); return 0; } #include int main() { int i,sum=0; printf("Please input a number :"); scanf("%d",&i); //输入10以内,结果一样.输入11的话,先做操作,所以sum=11. do { sum=sum+i; i++; }while(i<=10); //此重点在于理解二者的差别. printf("The sum of 1-10 is %d .\n",sum); return 0; } #include int main() { int i,b=0,a,c; for(i=0;i<=1000;i++) { printf("Please input amount :"); //循环体内套有输出语句以及跳出语句. scanf("%d",&a); b=b+a; if(b>=100)

【良心出品】国家开放大程序设计基础学形考4

国家开放大程序设计基础学形考任务4 一、填空题(每空2分,合计50分,可以在线注明题号,填写答案,也可以通过附件形式提交) 1.算法的四种基本操作是逻辑运算、算术运算、数据比较、数据传送。 2.算法的控制结构有三种基本形式:顺序结构、选择结构、循环结构。 3.评价算法需要从几个不同的角度考虑,最主要的是正确性和运行效率。 4.算法的运行效率包括两方面,算法的时间复杂度和算法的空间复杂度。5.结构化程序设计的总体思想是采用模块化结构,自顶向下、逐步求精。 6. 软件生存周期包括软件的定义、软件的开发和软件使用与维护 3个部分。 7. 软件定义时期主要包括可行性研究和需求分析两个阶段。 8.软件开发时期是具体设计和实现在前一时期定义的软件,它由软件的设计阶段、实现阶段、集成阶段组成。 9.软件工程的目标是可概括为生产具有正确性、可用性以及开销合宜的产品。10.软件开发模型大体上可分为两种类型,第一种是以软件需求完全确定为前提的瀑布模型。第二种是在软件开发初始阶段只能提供基本需求时采用的渐进式开发模型。 二、选择题(每题4分,合计40分) 1、下列叙述中正确的是__B___。 选择一项: A. 设计算法时只需要考虑结果的可靠性 B. 以上三种说法都不对 C. 算法就是程序 D. 设计算法时只需要考虑数据结构的设计 2、下列叙述中正确的是__A___。 选择一项: A. 以上三种说法都不对 B. 一个算法的空间复杂度大,则其时间复杂度也必定大 C. 一个算法的空间复杂度大,则其时间复杂度必定小 D. 一个算法的时间复杂度大,则其空间复杂度必定小 3、一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是( B )。选择一项: A. 有穷性 B. 有零个或多个输出 C. 可行性

程序设计基础(知识点)

第三部分程序设计基础 3.1 程序、程序设计、程序设计语言的定义 ⑴程序:计算机程序,是指为了得到某种结果而可以由计算机等具有信息处理能力的装置执行的代码化指令序列,或者可以被自动转换成代码化指令序列的符号化指令序列或者符号化语句序列。 ⑵程序设计:程序设计是给出解决特定问题程序的过程,是软件构造活动中的重要组成部分。程序设计往往以某种程序设计语言为工具,给出这种语言下的程序。程序设计过程应当包括分析、设计、编码、测试、排错等不同阶段。 ⑶程序设计语言:程序设计语言用于书写计算机程序的语言。语言的基础是一组记号和一组规则。根据规则由记号构成的记号串的总体就是语言。在程序设计语言中,这些记号串就是程序。程序设计语言有3个方面的因素,即语法、语义和语用。 3.2 高级语言和低级语言的概念及区别 ⑴高级语言:高级语言(High-level programming language)是高度封装了的编程语言,与低级语言相对。

它是以人类的日常语言为基础的一种编程语言,使用一般人易于接受的文字来表示(例如汉字、不规则英文或其他外语),从而使程序编写员编写更容易,亦有较高的可读性,以方便对电脑认知较浅的人亦可以大概明白其内容。 ⑵低级语言:低级语言分机器语言(二进制语言)和汇编语言(符号语言),这两种语言都是面向机器的语言,和具体机器的指令系统密切相关。机器语言用指令代码编写程序,而符号语言用指令助记符来编写程序。 ⑶区别: 高级语言:实现效率高,执行效率低,对硬件的可控性弱,目标代码大,可维护性好,可移植性好低级语言:实现效率低,执行效率高,对硬件的可控性强,目标代码小,可维护性差,可移植性差 了解知识:CPU运行的是二进制指令,所有的语言编写的程序最终都要翻译成二进制代码。越低级的语言,形式上越接近机器指令,汇编语言就是与机器指令一一对应的。而越高级的语言,一条语句对应的指令数越多,其中原因就是高级语言对底层操作进行了抽象和封装,

程序设计基础课程设计报告 内容样例

第一章目的与要求 书上有。 第二章需求分析 软件设计的一个重要的环节就是需求分析。本章在对ATM取款机管理系统的应用情况作了全面调查的基础上,确定系统目标,并对系统所需要的基础功能进行分析,从而确定用户的需求。以下是ATM取款机管理系统所需要的需求分析。 ATM管理系统包括六个模块:登录,挂失功能,修改密码,取款功能,转账功能,查询功能。 ①登录: 输入银行卡的账号,密码,验证银行卡的卡号,密码是否正确,之后进入主界面 ②挂失功能: 确认是否对银行卡进行挂失,挂失后账户无法操作 ③修改密码: 用户可自由对其银行卡密码进行修改,修改之后的新密码将会覆盖其原密码 ④取款功能: 用户可自由取得所持银行卡内的存款,所取款数必须在其原有账户余额之内 ⑤转账功能: 用户可将本账户中的存款转入其他账户,转账过程中,需要转入账户的账

号 ⑥查询功能: 用户可查询用户信息,其中包括用户姓名、用户身份证号码、银行卡号以及存款余额 模拟ATM取款机的操作: 首先录入账户信息,格式如下 ㈠、登录功能:输入帐号和密码进行登录,如密码错误提示重新输入密码,如帐号错误提示无此帐户。 ㈡、查询功能:查询账户余额。 ㈢、取款功能:取款,更新余额。 ㈣、挂失功能:挂失后,该账户不能进行任何操作。 ㈤、修改密码:输入原密码和新设置密码。 ㈥、转账功能:输入转账的转出账户以及转账金额,进行转账。

第三章设计分析 3.1、ATM系统管理 3.1.1系统基本功能 首先,确定系统中存在两种用户,一种是ATM,可以进行信息录入和后台管理。另外一种是取款人,取款人主要是进行信息的查询,不能进行信息录入。所以在创建类的时候,先创建一个ATM类,然后创建取款人类,并与ATM 类形成有元,进而继承ATM的所有功能,并添加录入信息的功能。 基本功能: 登录功能---------输入帐号和密码进行登录,如密码错误提示重新输入密码,如帐号错误提示无此帐户。 查询功能---------查询账户余额。 取款功能---------取款,更新余额。 挂失功能---------挂失后,该账户不能进行任何操作。 修改密码---------输入原密码和新设置密码。 转账功能---------输入转账的转出账户以及转账金额,进行转账。、

C语言程序设计基础知识 习题一及参考答案

第一章:程序设计基础知识 一、单项选择题 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)结构化程序设计方法是面向过程程序设计的主流。 B)算法就是计算方法。 C)一个正确的程序就是指程序书写正确。 D)计算机语言就是编写程序的工具而不是表示算法的工具。 7、下面描述中,不正确的是( )。 A)递归法的关键是必须有一个递归终止的条件。

B)递归算法要求语言具有反复自我调用子程序的能力。 C)对于同一个问题,递推算法比递归算法的执行时间要长。 D)递推算法总可以转换为一个递归算法。 8、N-S图与传统流程图比较,主要优点是( )。 A)杜绝了程序的无条件转移。 B)具有顺序、选择和循环三种基本结构。 C)简单、只管。 D)有利于编写程序。 A)B)C)D) 二、填空题 1、在流程图符号中,判断框中应该填写的的是________。(判断条件) 2、结构化程序设计是__________应遵循的方法和原则。(面向过程编程) 3、结构化程序必须用__________程序设计语言来编写。(具有结构化控制语句) 4、可以被连续执行的一条条指令的集合称为计算机的________。(程序) 5、只描述程序应该“做什么”,而不必描述“怎样做”的语言被称为________。(面向对象) 6、任何简单或复杂的算法都是由_____和_____这两个要素组成。(数据结构算法) 7、算法的_______特征是指:一个算法必须在执行有限个操作步骤后终止。(有穷性) 8、在三种基本结构中,先执行后判断的结构被称为_________。(直到型循环结构) 9、在程序设计中,把解决问题确定的方法和有限的步骤称为______。(算法) 10、程序设计风格主要影响程序的________。(可读性) 11、用模块组装起来的程序被成为________结构化程序。(模块化) 12、采用自上而下,逐步求精的设计方法便于____________。(结构化和模块化) 三、应用题

计算机程序设计基础习题册含答案

《计算机程序设计基础》 计算机程序设 计基础_基础知识(一) 班级 学号 姓名 成 绩 一、 单选题 习题册

1.C++源程序文件的默认扩展名为A。 2.A) cpp B) exe C) obj D) lik 3.由C++源程序文件编译而成的目标文件的默认扩展名为C。 4.A) cpp B) exe C) obj D) lik 5.由C++目标文件连接而成的可执行文件的默认扩展名为B。 6.A) cpp B) exe C) obj D) lik 7.编写C++程序一般需经过的几个步骤依次是B。 8.A)编译、编辑、连接、调试 B)编辑、编译、连接、调试 C)编译、调试、编辑、连接 D)编辑、调试、编辑、连接9.程序中主函数的名字为 A 。 10.A) main B) MAIN C) Main D) 任意标识 符 11.下面四个选项中,均是不合法的 用户标识符的选项的是 C。 12.A) A p_o do B)float lao _A C)b-a goto int D)_123 temp INT 13.下列变量名中合法的是 C。 14.A) B)C)Tom B) 3a66 C) _6a7b D) $ABC 15.存储以下数据,占用存储字节最 多的是 D 。 16.A) 0 B) ‘0’

C) “0” D) 17.在C++语言中,字符型数据在内存中的存储形式是D。 18.A) 补码 B) 反码 C) 原码 D) ASCII码 19.若有说明语句:char c =’\072’;则变量c A。 20.A) 包含1个字符 B) 包含2个字符 C) 包含3个字符 D) 说明不合法,变量的值不确定 二、填空题 1.C++头文件和源程序文件的扩展名分别为.h和.cpp 。 2.C++语言规定,标识符只能由字母、数字、下划线三种字符组成,而且第一个字符必须是字母或下划线。 3.一条表达式语句必须以__分号_;___作为结束符。 4.用于从键盘上为变量输入值的标准输入流对象是___cin____;用于输出表达式值的标准输出流对象是__cout____。 5.在一个C++程序文件中,若要包含另外一个头文件或程序文件,则应使用以_#include___标识符开始的预处理命令 计算机程序设计基础_基础知识(二) 班级学号姓名成绩 一、单选题 1.下列哪一个是C++语言中合法的变量 C A) 8ZSe B) ±A0 C) X0_2 D) ’x0’2.已知ch是字符型变量,下面不正确的赋值语句是A 3.A) ch='a+b' B) ch='\0'

程序设计基础课程设计

1 矩阵的操作(6人) 设有两个矩阵A=(a ij)m×n,B=(b ij)p×q 实现要求: ⑴编写矩阵输入函数INPUT_MAT,通过该函数完成矩阵的输入并返回保存矩阵的数组和对应矩阵的行数、列数。(不能使用全局变量) ⑵编写矩阵输出函数OUTPUT_MAT,通过该函数完成矩阵的输出。 ⑶求矩阵的转置,矩阵的转置A’=(a ji)n×m,转置前输出原矩阵,转置后输出转置矩阵。 ⑷求矩阵A、B的和。矩阵A和B能够相加的条件是:m=p,n=q;矩阵A和B如果不能相加,请给出提示信息;若能够相加,则求和矩阵C并输出C。 C=A+B=(c ij)m×n,其中c ij=a ij+b ij ⑸求矩阵A、B的积。矩阵A和B能够相乘的条件是:p=n;矩阵A和B 如果不能相乘,请给出提示信息;若能够相乘,则求积矩阵D并输出D。 D=A×B=(d ij)m×q,其中d ij=∑a ik×b kj,k=1,2,……,n ⑹设计一个菜单,具有求矩阵的转置、求矩阵的和、求矩阵的积、退出等基本的功能。在求矩阵的和或求矩阵的积时要求能够先提示输入两个矩阵的,然后再进行相应的操作。

2 数据汇总 (6人) 问题描述: 在数据处理中经常需要对大量数据进行汇总,将相同关键字记录的某些数据项的值叠加起来,生成一个分类汇总表。 假设某超级市场销售有m种商品(假设商品的编号为1,2,3,┅┅,m),有n台前台收款机(假设收款机的编号为1,2,3,┅┅,n)进行收款,以记录的形式提供给计算机,每个记录表示某台收款机的一种商品一次交易的数量和销售额。记录由4个域组成:收款机编号、商品编号、销售数量、销售金额。构造一个结构体类型,每次销售数据以一个结构体变量保存在一个数据文件中。实现要求: ⑴编写实现将数据记录插入到数据文件的最后的函数; ⑵编写以收款机为单位的数据分类处理函数。构造n个单链表,每个链表保存一台收款机的销售记录,这n个单链表的头指针存放在一个指针数组中,通过数组的下标就可以知道是哪台收款机。读取数据文件的记录,将所有的销售记录(数据文件中的全部记录)分解插入到n个单链表; ⑶统计每台收款机的销售总额; ⑷编写以商品为单位的数据分类处理函数。构造m个单链表,每个链表保存一种商品的销售记录,这m个单链表的头指针存放在一个指针数组中,通过数组的下标就可以知道是哪种商品。读取数据文件的记录,将所有的销售记录(数据文件中的全部记录)分解插入到m个单链表; ⑸以商品为单位,统计每种商品的销售总额。 ⑹设计一个菜单,具有插入数据记录、按收款机统计销售总额、按商品统计销售总额、退出系统等最基本的功能。

计算机程序设计基础

计算机程序设计基础 ——精讲多练C/C++语言 程序的基本结构 1、在屏幕上显示如下图形: **************** * Hello World * **************** #include using namespace std; int main() { cout<<"****************"< using namespace std; int main() { double x,y,sum,sub,mult,div; cout<<"Please enter the two Numbers for calculation:"; cin>>x>>y; sum=x+y; sub=x-y; mult=x*y; div=x/y; cout<

7.有以下程序 main(){ int m=12,n=34; printf("%d%d",m++,++n); printf("%d%d\n",n++,++m);}程序运行后的输出结果是 (A)12353514 (B)12353513 (C)12343514 (D)12343513 8.有以下语句:int b;char c[10];,则正确的输入语句是 A)scanf("%d%s",&b,&c); B) scanf("%d%s",&b,c); (C)scanf("%d%s",b,c); D)scanf("%d%s",b,&c); 9.有以下程序 main(){ int m,n,p; scanf("m=%dn=%dp=%d",&m,&n,&p); printf("%d%d%d\n",m,n,p); } 若想从键盘上输入数据,使变量M中的值为123,N中的值为456,P中的值为789,则正确的输入是 A)m=123n=456p=789 B)m=123 n=456 p=789 C)m=123,n=456,p=789 D)123 456 789 10.有以下程序 main(){ int a,b,d=25; a=d/10%9;b=a&&(-1); printf("%d,%d\n",a,b); } 程序运行后的输出结果是 A)6,1 B)2,1 C)6,0 D)2,0 11.有以下程序 main(){ int i=1,j=2,k=3; if(i++==1&&(++j==3||k++==3))

C++面向对象程序设计课程设计报告

. 课程设计 课程名称C++面向对象程序设计题目名称公司人员管理系统 专业班级13级计算机科学与技术一班学生林涛、甑德胜、梁增辉 吴志伟、齐、江靖 学号51302011015、51302011016、51302011001 51302011037、51302011006、51302011009指导教师郭有强 二○一四年六月二十日

目录 一、引言 (2) 二、课程设计报告 (4) 1、问题描述 (4) 2、系统总体方案 (4) 3、设计思路和主要步骤 (5) 4、各功能模块和流程图 (5) (1)各功能模块 (5) (2)流程图 (6) 三、系统测试 (9) 四、心得体会 (15) 五、参考文献 (17) 附:程序设计代码 (18)

一、引言 1985年,管理信息系统的创始人,高登?戴维斯给出的管理信息系统的定义是:“它是一个利用计算机硬件和软件,手工作业,分析、计划、控制和决策模型,以及数据库的用户一机器系统。它能提供信息,支持企业或组织的运行、管理和决策。”这个定义说明了管理信息系统的组成要素:计算机硬件、软件、数据库、模型库和用户。 随着我国社会的不断进步,人们对管理信息系统越来越重视,再加之管理信息系统在管理方面所产生的巨大影响,也使得人们越来越关注管理信息系统的发展趋势。由于管理信息系统的发展受到以上各种变革因素的制约,传统的管理信息系统必然向现代管理信息系统发展,在这个发展过程中,管理信息系统的发展将会呈现出以下趋势: 管理信息系统将会越来越注重以人为本。管理科学的发展有科学管理理论、行为管理理论和现代管理理论三个发展阶段,正在向着越来越人性化的方向发展,即以人为本。基于管理学的这一研究视角,管理信息系统也将向着更加人性化的方向发展。在今后的管理信息系统中将会越来越注重人的因素,以人为出发点和中心,围绕着激发和调动人的主动性、积极性、创造性展开的,以实现人与社会共同发展的一系列管理活动。而且这种人性化还会贯穿于管理信息系统的开发设计与研究中,具体表现为今后的管理信息系统将具有更加友好的人机界面,易于人们操作,也会考虑到不同用户的不同需求,更加个性化。 管理信息系统向智能化方向发展。随着人工智能技术的发展,数据仓库、数据挖掘技术在管理信息系统中的应用,管理信息系统必将向着智能化方向发展,如产生了很多的决策支持系统、专家系统等等。智能化的管理信息系统具有思维模拟活动,它具有很高的自学习、自组织和进化性,并具有知识创新功能,可以解决非结构化事务,在决策中处于主导地位,是人的向导,在体系上将是大规模分布式计算模式,以基于网络神经元构件的智能网为主。 管理信息系统向集成化方向发展。随着当前系统集成技术的提高,集成技术和方法也逐步地运用到管理信息系统中。由于管理信息系统将包含多个子系统,因此将这些功能集合在一起以便更好地发挥它的作用,这就是集成化的管理信息系统。集成化的管理信息系统将管理信息系统的各个子系统有机地结合起来,达到互通信息、共享数据资源的目的,其支撑技术是数据库和计算机网络。集成管

《程序设计基础》试卷B及答案

黄淮学院计算机科学系2007-2008学年度第一学期 期末考试《程序设计基础》B 卷 注意事项:本试卷适用于计科系06级本科计算机科学与技术专业学生。 题号 一 二 三 四 总分 核分人 得分 1.__ ____函数是程序启动时惟一的入口。 2.算法的复杂性包含两方面: 和 。 3.已知 char c= 'a' ; int x=2,k; 执行语句k=c&&x++ ; 则x 为 ,k 为 。 4.数值0x34对应的十进制为 。 5.已知int a ; 则表达式”(a=2*3 , 3*8), a*10”的结果为_ _ ____,变量a 的值为___ ___。 6.面向对象程序开发步骤为: 、 和面向对象实现。 1.下列程序设计语言中( )是面向对象语言。 A. FORTRAN B. C 语言 C. C++ D. 汇编语言 2.下列关于注释的说法哪个是错误的( )。 A. 注释不是程序中的可执行语句 B. 注释对于程序的执行有很重要的意义 C. 注释将在程序的编译阶段被编译器剔除 D. 编程时在程序中添加适当的注释是一个良好的编程风格 3.算法设计应该遵守( )的设计原则。 A. 自底向上,逐步求精 B. 自顶向下,逐步求精 C. 自底向上,同步扩展 D. 自顶向下,同步扩展 4.下列语句执行后a 的值为( )。 int a=4, &z=a, k=3; a=k; z+=2; k++; A. 0 B. 4 C. 1 D. 5 5.以下程序执行后,屏幕输出为( )。 #include “iostream.h ” void fun(int d) {d++;} void main() { int d=3; fun(d); d++; cout<=?a ?)&&(d<=?z ?) B. …a ?<=d<=?z ? C. (d>=?a ?)||(d<=?z ?) D. …A ?<=d<=?Z ? 8.已知:int k=7, x=12; 则执行语句( )后x 的值为0。 A. x+=k-x%5; B. x+=(x-k%5); C. x%=(k-=5); D. (x-=k)-(k+=5); 9.运行下列程序,其输出结果为( )。 #include “iostream.h ” void main() { int x(5),y(5),z(5); y--&&++x&&z--||y++; cout<

相关文档
相关文档 最新文档