当前位置:文档之家› 省二级《C程序设计》上机考试练习_1 (2)

省二级《C程序设计》上机考试练习_1 (2)

省二级《C程序设计》上机考试练习_1 (2)
省二级《C程序设计》上机考试练习_1 (2)

上机程序调试及程序设计练习

一、程序填空

(1)找Armstrong(水仙花)数:371=3*3*3+7*7*7+1*1*1

#include

#include

void main()

{ int i,a,b,c;

for(i=100;i<=999;i++)

{ a=i/100;

_______1_______ // b=i%100/10;

c=i%10;

if (________2________) // a*a*a+b*b*b+c*c*c = = i printf("%d is a Armstrong number!\n",i);

}

}

(2)输入1个整数后,输出该数的位数。(例:输入3214则输出4,输入-23156则输出5)。

#include

void main()

{ int n,k=0;

scanf("%d",&n);

while( _____1_____ ){ // n!=0

k++;

_____2_____; // n=n/10

}

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

}

(3)求输入的整数各位数字之和,如输入234则输出9,输入-312则输出6。

#include

#include

void main()

{

int n,s=0;

scanf("%d",&n);

______ 1 ______ // if (n<0) n=-n;

while(n!=0) {

______ 2 ______ // s+=n%10;

n=n/10;

}

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

}

(4)调用函数f,将一个整数首尾倒置。例如:若程序输入12345,则输出54321;若程序输入-34567,则输出-76543。

#include

#include

long f(long n)

{ long m,y=0; m=fabs(n);

while(m!=0) {

y=y*10+m%10;

____1____ // m=m/10 ;

}

if(n>=0) return y;

else _____2_____ // return -y ;

}

void main()

{

printf("%ld\t",f(12345)); printf("%ld\n",f(-34567));

}

(5)调用函数f,从字符串中删除所有的数字字符。

#include

#include

#include

void f(char *s)

{ int i=0;

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

if(isdigit(s[i])) ____1____(s+i,s+i+1); // strcpy

___2___i++;} // else

}

void main()

{ char str[80];

gets(str); f(str); puts(str);

}

(6)调用find函数在输入的字符串中查找是否出现"the"这个单词。如果查到返回出现的次数,如果未找到返回0。

#include

int find(char *str)

{ char *fstr="the";

int i=0,j,n=0;

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

{

for(______1______) // j=0; j<3; j++

if (str[j+i]!=fstr[j]) break;

if (______2______) n++; // j>=3

i++;

}

return n;

}

void main()

{ char a[80];

gets(a);

printf("%d",find(a));

}

(7)输入的一个小写字母,将字母循环后移5个位置后输出。例如:'a'变成'f','w'变成'b'。

#include

void main()

{ char c;

c=getchar();

if(______1______) // c>='a'&&c<='u' c=c+5;

else

if (c>='v' && c<='z')

______2______ // c=c-'v'+'a';

putchar(c);

}

(8)将字符串s中所有的字符'c'删除。

#include

void main()

{ char s[80];

int i,j;

gets(s);

for(i=j=0; ______1______; i++) // s[i] != '\0'

if(s[i] != 'c')

{ s[j]=s[i];

______2______ // j++;

}

s[j]='\0';

puts(s);

}

(9)对x=1,2,……,10,求f(x)=x*x-5*x+sin(x)的最大值。

#include

#include

#define f(x) x*x-5*x+sin(x)

void main()

{ int x; float max;

______1______ // max=f(1);

for(x=2;x<=10;x++)

______2______ // if (f(x)>max) max=f(x);

printf("%f\n",max);

}

(10)输入三个整数,按由小到大的顺序输出这三个数。

#include

void swap(______1______) // int *pa, int *pb

{ /*交换两个数的位置*/

int temp;

temp = *pa;

*pa = *pb;

*pb = temp;

}

void main()

{ int a,b,c,temp;

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

if(a>b)

swap(&a,&b);

if(b>c)

swap(&b,&c);

if(______2______) // a>b

swap(&a,&b);

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

}

(11)调用函数f,去除数组中的负数,输入数组x[7],输出结果为:1 3 4 6

#include // 数组元素的删除

void f(int *a,int *m)

{ int i, j ;

for(i=0;i<*m;i++)

if(a[i]<0) {

for(j=i--;j<*m-1;j++) a[j]=a[j+1];

_____1_____; // *m = *m-1 或者(*m)- -

}

}

void main()

{ int i,n=7,x[7]={1,-2,3,4,-5,6,-7};

_______2_______; // f (x, &n) ;

for(i=0;i

printf("\n");

}

(12)调用函数f计算代数多项式1.1+2.2*x+3.3*x*x+4.4*x*x*x+5.5*x*x*x*x当x=1.7时的值。

#include

float f(float, float*, int);

void main()

{ float b[5]={1.1, 2.2, 3.3, 4.4, 5.5 };

printf("%f\n", f(1.7,b,5) );

}

float f( _______1________ ) // float x, float *a, int n

{ float y=a[0], t=1; int i;

for(i=1; i

_____2_____ //return y;

}

(13)分别统计字符串中英文字母、数字、和其他字符出现的次数。

#include

#include

void main()

{ char a[80]; int n[3]={0}, i; gets(a) ;

________1________ // for ( i=0; a[i]!='\0'; i++)

{if (tolower(a[i])>='a' && tolower(a[i])<='z') /*统计字母个数*/

n[0]++;

else if (________2________) /*统计数字个数*/ // a[i]>='0' && a[i]<='9' n[1]++;

else

n[2]++;

}

for(i=0;i<3;i++) printf("%d\n",n[i]);

}

(14)将输入的十进制整数n通过函数DtoH函数转换为十六进制数,并将转换结果以字符串形式输出。

(例如:输入十进制数79,将输出十六进制4f。)

# include

# include

char trans(int x)

{

if(x<10) return '0'+x;

else _______1________// return 'a'+x-10;

}

int DtoH(int n,char *str)

{

int i=0;

while(n!=0)

{

________2________ // str[i]=trans(n%16);

n/=16;i++; }

return i-1;

}

void main()

{

int i,k,n;

char *str; // 注意:题目有错!str是悬挂指针。应改为:char str[80];

scanf("%d",&n);

k=DtoH(n,str);

for (i=0;i<=k;i++) printf("%c",str[k-i]);

}

(15)将输入的十进制正整数n通过函数Dec2Bin转换为二进制数,并将转换结果输出。

#include

void Dec2Bin(int m)

{

int bin[32],j;

for(j=0;m!=0;j++)

{

bin[j]= ______1______; //m%2

m=m/2;

}

for( ; j!=0; j-- )

printf("%d", ______2______ ); // bin[j-1] }

void main()

{

int n;

scanf("%d",&n);

Dec2Bin(n);

}

(16)数列的第1、2项均为1,此后各项值均为该项前二项之和。计算数列第30项的值。

#include

_______1______ // long f(int n); 或者long f(int);

void main()

{ printf("%ld\n",f(30)) ;

}

long f(int n)

{ if( ______2______ ) // n==1 || n==2

return 1;

else

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

}

(17)该程序计算四位学生的平均成绩,保存在结构中,然后列表输出这些学生的信息。

#include

struct STUDENT

{ char name[16];

int math;

int english;

int computer;

int average;

};

void GetAverage(struct STUDENT *pst) /* 计算平均成绩*/

{ int sum=0;

sum = ______1______; // pst->math+pst->english+pst->computer

pst->average = sum/3;

}

void main()

{ int i;

struct STUDENT st[4]={{"Jessica",98,95,90},{"Mike",80,80,90},

{"Linda",87,76,70},{"Peter",90,100,99}};

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

{ GetAverage(______2______); // st + i 或者&st[i]

}

printf("Name\tMath\tEnglish\tCompu\tAverage\n");

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

{ printf("%s\t%d\t%d\t%d\t%d\n",st[i].name,st[i].math,st[i].english,

st[i].computer,st[i].average);

}

}

(18)输入m、n(要求输入数均大于0)。输出它们的最大公约数。

#include

void main()

{ int m, n, k;

while ( scanf("%d%d", &m, &n), ______1______ ); // m<=0||n<=0

for (___2___ ; n%k!=0 || m%k!=0 ; k--) ; // k=m>n?n:m

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

}

(19)求出a中各相邻两个元素的和,并将这些和存放在数组b中,按每行3个元素的形式输出。例如:b[1]=a[0]+a[1],……,b[9]=a[8]+a[9]。

#include

void main()

{ int a[10],b[10],i;

printf("\nInput 10 numbers: ");

for (i=0; i<10;i++) /* 数组输入*/

scanf("%d", &a[i]);

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

b[i]=______1______; /* 计算b数组中的元素*/ // a[i-1]+a[i] for (i=1; i<10; i++)

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

if (______2______) printf("\n"); /* 每行打印3个数据*/ // i%3= =0 }

}

(20)输入整数n(n>0),求m使得2的m次方小于或等于n,2的m+1次方大于或等于n。

#include

void main()

{ int m=0,t=1,n;

while( _____ 1 ________); // scanf(“%d”,&n), n<=0 // 逗号表达式

while(!(t<=n&&t*2>=n)){

_____ 2 _____ // t=t*2;

m++;

}

printf(“%d\n”,m);

}

二、程序改错

(1)输入一个字符串,将组成字符串的所有非英文字母的字符删除后输出。

#include

#include // 注意:题目有错!应增加一行:#include

void main()

{ char str[256];

int i,j,k=0,n;

gets(str);

n=strlen(str);

for(i=0;i

/********1********/

if (tolower(str[i])<'a' || tolower(str[i])>'z') // if (tolower(str[i])>='a' && tolower(str[i])<='z')

{

/********2********/

str[n]=str[i]; n++; // str[k]=str[i]; k++;

}

str[k]='\0';

printf("%s\n",str);

}

(2)输入一个字符串,将组成字符串的所有字符先按顺序存放到字符串t中,再将字符串中的字符按逆序连接到字符串t后面。例如:输入"ABCD",则字符串t为"ABCDDCBA"。

#include

#include

void fun(char *s,char *t)

{ int i,sl;

sl=strlen(s);

for(i=0;i

t[i]=s[i];

for(i=0;i

/********1********/

t[sl+i]=s[sl-i]; // t[sl+i]=s[sl-1-i];

/********2********/

t[sl]="\0"; // t[sl+i ]='\0';

}

void main()

{ char s[100],t[100];

scanf("%s",s);

fun(s,t);

printf("%s",t);

}

(3)运行时输入10个数,然后分别输出其中的最大值、最小值。

#include

void main()

{ float x,max,min; int i;

/******** 1 *******/

for(i=0;i<=10;i++) {// for(i=1; i<=10; i++) { scanf("%f",&x);

/******* 2 ********/

if(i=1) { max=x;min=x;}// if(i==1) { max=x;min=x;}

if(x>max) max=x;

if(x

}

printf("%f,%f\n",max,min);

}

(4)用选择法对10个整数按升序排序。

#include

#define N 10

void main()

{ int i, j, min, temp ;

int a[N]={5, 4, 3, 2, 1, 9, 8, 7, 6, 0 };

printf("\nThe array is:\n"); /* 输出数组元素*/

for (i=0;i

for (i=0;i

{ min = i;

for (j=i+1; j

/****** 1 ******/

if (a[min]<=a[j]) min =j;// if ( a[min]>a[j] ) min =j;

/****** 2 ******/

temp=a[min]; a[min]=a[j]; a[j]=temp;/*数据交换*/

// 改成temp=a[min]; a[min]=a[i]; a[i]=temp;

}

printf("\nThe sorted numbers: \n"); /* 输出排序结果*/

for (i=0;i

printf("\n");

}

(5)输入x和正数eps,计算多项式1-x+x*x/2-x*x*x/3!+……的和直到末项的绝对值小于eps为止。

#include

#include

void main()

{ float x,eps,s=1,t=1,i=1;

scanf("%f%f",&x,&eps);

do {

/***** 1 *****/

t=-t*x/++i; // t=-t*x/i++ ;

s+=t;

/***** 2 *****/

} while(fabs(t)=eps);

printf("%f\n",s);

}

(6)运行时若输入a、n分别为3、6,则输出下列表达式的值:3+33+333+3333+33333+333333。

#include

void main()

{ int i,a,n; long t=0;

/********* 1 *******/

s=0; // long s=0;

scanf("%d%d",&a,&n);

for(i=1;i<=n;i++) {

/******* 2 ******/

t=t*10+i; // t=t*10+1;

s=s+t;

}

s=s*a;

printf("%ld\n",s);

}

(7)用递归法将一个六位整数n转换称字符串。例如:输入123456,应输出字符串"123456"。

#include

void itoa(long i,char *s)

{ if(i==0)

return;

/****** 1 ******/

*s = '1'+i%10; // *s=i%10+'0';

itoa(i/10,s-1);

}

void main()

{ long n;

char str[7]="";

scanf("%ld",&n);

/****** 2 ******/

itoa(n,str+6); // itoa(n,str+5);

printf("%s",str);

}

(8)输入n,再输入n个点的平面坐标,然后输出那些距离坐标原点不超过5的点的坐标值。

#include

#include

#include

void main()

{ int i,n;

/***** 1 *****/

struct axy { float x,y; } a;// struct axy { float x,y; } *a;

scanf("%d",&n);

a=(float*) malloc(n*2*sizeof(float));

for(i=0;i

/***** 2 *****/

scanf("%f%f",a[i].x,a[i].y); // scanf("%f%f",&a[i].x,&a[i].y);

for(i=0;i

if(sqrt(a[i].x*a[i].x+a[i].y*a[i].y)<=5)

printf("%f,%f\n",a[i].x,a[i].y);

}

(9)运行时输入n,则输出n的所有质数因子。例如:n=13860,则输出2、2、3、3、5、7、11。

#include

void main()

{ int n,i;

scanf("%d",&n);

/****** 1 ******/

i=1; // i=2;

while(n>1)

if(n%i==0) {

printf("%d\t",i);

n/=i;

}

else

/******** 2 *******/

n++; // i++;

}

三、编写程序

(1)在正整数中找出1个最小的、被3、5、7、9除余数分别为1、3、5、7的数,将该数以格式"%d"

写入到考生文件夹中Paper子文件夹下的新建文件Design1.dat中。

#include

#include

void main()

{

/*考生在这里添加代码*/

FILE *p; int i;

p=fopen("Design1.dat","w");

for( i=1; ;i++)

if (i%3==1 && i%5==3 && i%7==5 && i%9==7) break;

fprintf(p,"%d",i);

fclose(p);

}

(2)若a、b为1对亲密数,则a的因子和等于b、b的因子和等于a、且a不等于b。如:220、284是1对亲密数,284、220也是1对亲密数。在6~5000内找出所有的亲密数对,并将每对亲密数用语句fprintf( p, "%6d, %6d\n", a, b)写入到考生文件夹中Paper子文件夹下的新建文件Design2.dat。

#include

void main()

{ FILE *p; int a,b,c,k;

p=fopen("design.dat","w");

/*考生在这里添加代码*/

for(k=6;k<=5000;k++)

{ b=0; c=0;

for(a=1;a

if (k%a==0) b+=a;

for(a=1;a

if (b%a==0) c+=a;

if (k==c&&k!=b) fprintf(p,"%6d,%d\n",k,b);

}

fclose(p);

}

(3)设计程序:计算字符串s中每个字符的权重值,所谓权重值就是字符在字符串中的位置值与该字符的ASCII码值的乘积。位置值从1开始依此递增。将每个字符的权重值,以格式"%d "写入到源程序目录中Paper子目录下的新建文件design.dat中。

#include

#include

void main()

{ FILE *p; int i,w;

char *s="we45*&y3r#$1";

/*考生在这里添加代码*/

p=fopen("design.dat","w");

for (i=0;s[i]!='\0';i++)

{ w=(i+1)*s[i];

fprintf( p,"%d ",w);

}

fclose(p);

}

(4)将数组a的每一行均除以该行上绝对值最大的元素,然后将a数组写入到考生文件夹中Paper子文件夹下的新建文件Design1.dat。

#include

#include

void main()

{ float a[3][3]={{1.3,2.7,3.6},{2,3,4.7},{3,4,1.27}};

FILE *p; float x; int i,j;

/*考生在这里添加代码*/

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

{ x=a[i][0];

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

if ( fabs(a[i][j])>fabs(x) ) x=a[i][j];

for (j=0;j<3;j++) a[i][j]/=x;

}

/***添加代码结束***/

p=fopen("design.dat","w");

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

for(j=0;j<3;j++) fprintf(p,"%10.6f",a[i][j]);

fprintf(p,"\n");

}

fclose(p);

}

(5)z=f(x,y)=(3.14*x-y)/(x+y),若x、y取值为区间[1,6]的整数,找出使z取最小值的x1、y1,并将x1、y1以格式"%d,%d"写入到考生文件夹中Paper子文件夹下的新建文件Design2.dat。

#include

void main()

{ FILE *p; float f(float x,float y),min;

int x,y,x1,y1;

/*考生在这里添加代码*/

min=f(1,1); x1=y1=1;

for (x=1;x<=6;x++)

for (y=1;y<=6;y++)

if (f(x,y)

{ min=f(x,y); x1=x; y1=y; }

p=fopen("Design2.dat","w");

fprintf(p,"%d,%d",x1,y1);

fclose(p);

/***添加代码结束***/

}

float f(float u,float v)

{ return (3.14*u-v)/(u+v); }

(6)z=f(x,y)=10*cos(x-4)+5*sin(y-2),若x、y取值为区间[0,10]的整数,找出使z取最小值的x1、y1,并将x1、y1以格式"%d,%d"写入到考生文件夹中Paper子文件夹下的新建文件Design2.dat。

#include

#include

void main()

{ FILE *p;

int x,y,x1,y1; float z,z1;

/*考生在这里添加代码*/

z1=10*cos(-4)+5*sin(-2); x1=y1=0;

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

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

{ z=10*cos(x-4)+5*sin(y-2);

if (z

}

p=fopen("Design2.dat","w");

fprintf(p,"%d,%d",x1,y1);

fclose(p);

}

(7)设计程序:数组元素x[i]、y[i]表示平面上某点坐标,统计所有各点间最短距离,并将其值以格

式"%f"写到源程序目录中Paper子目录下的新建文件design.dat中。

#include

#include

#define len(x1,y1,x2,y2) sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2))

void main()

{ FILE *p; int i,j; float c,minc;

float x[]={1.1,3.2,-2.5,5.67,3.42,-4.5,2.54,5.6,0.97,4.65};

float y[]={-6,4.3,4.5,3.67,2.42,2.54,5.6,-0.97,4.65,-3.33};

minc=len(x[0],y[0],x[1],y[1]);

/*考生在这里添加代码*/

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

for (j=i+1;j<10;j++) // 注意:不能为for (j=0; j<10; j++)

{ c=len(x[i],y[i],x[j],y[j]);

if (c

}

p=fopen("Design.dat","w");

fprintf(p,"%f",minc);

fclose(p);

}

(8)设计程序:在数组x的10个数中求平均值v,找出与v相差最小的数组元素并将其以格式"%.5f"

写到考生目录中Paper子目录下的新建文件design.dat中。

#include

#include

void main()

{ FILE *p; int i, k=0;

float x[10]={7.23,-1.5,5.24,2.1,-12.45,6.3,-5,3.2,-0.7,9.81},d,v=0;

for(i=0;i<10;i++) v+=x[i]; v=v/10; d=fabs(x[0]-v);

/*考生在这里添加代码*/

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

if ( fabs(x[i]-v)

p=fopen("Design.dat","w");

fprintf(p,"%.5f", x[k] );

fclose(p);

}

(9)对x=1,2,…10,求函数f(x)=x-10*cos(x)-5*sin(x)的最大值,并将该数以格式".3f"写入到考生文件夹中Paper子文件夹下的新建文件Design1.dat。

#include

#include

void main()

{ FILE *p; float f(float),max,x;

/*考生在这里添加代码*/

int i; max=f(1);

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

{ x=f(i);

if (max

}

p=fopen("Design1.dat","w");

fprintf(p,"%.3f",max);

fclose(p);

}

float f(float x)

{ float t;

t=x-10*cos(x)-5*sin(x);

return t;

}

(10)将字符串s中的所有字符按ASCII值从小到大重新排序后,将排序后的字符串写入到考生文件夹中Paper子文件夹下的新建文件Design2.dat。

#include

#include

void main()

{ FILE *p; char *s="634,.%@\\w|SQ2",c;

int i,j,k,n=strlen(s);

/*考生在这里添加代码*/

char str[40];

strcpy(str, s);

for(i=0;i

{ k=i;

for(j=i+1;j

if (str[k]>str[j] ) k=j;

c=str[i]; str[i]=str[k]; str[k]=c;

}

s = str ;

p=fopen("Design2.dat","w");

/***添加代码结束***/

for(i=0;i

fclose(p);

}

(11)在整数数组a中找出偶数放到b数组中,对b数组按从小到大的顺序进行排序后以格式"%3d"每

行3个数写入到考生文件夹中Paper子文件夹下的新建文件Design1.dat。

#include

void main()

{ FILE *p;

int i,j,temp,n=0;

int a[10]={7,6,20,3,14,88,53,62,10,29},b[10];

/*考生在这里添加代码*/

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

if (a[i]%2==0) b[n++]=a[i];

for (i=0;i

for (j=0; j

if (b[j]>b[j+1])

{ temp=b[j]; b[j]=b[j+1]; b[j+1]=temp; }

p=fopen("Design1.dat","w");

for (i=0;i

if (i%3==0) fprintf(p,"\n%3d",b[i]);

else fprintf(p,"%3d",b[i]);

fclose(p);

}

(12)计算多项式a0+a1*x+a2*x*x+a3*x*x*x+…+a9*x*x*x*x*x*x*x*x*x的值,并将其值以格式"%f"

写入到考生文件夹中Paper子文件夹下的新建文件Design2.dat。

#include

#include

void main()

{ FILE *p; int i; float x=1.279,t=1,y=0;

float a[10]={1.1,3.2,-2.5,5.67,3.42,-4.5,2.54,5.6,0.97,4.65};

/*考生在这里添加代码*/

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

{ y=y+a[i]*t;

t=t*x;

}

p=fopen("Design2.dat","w");

fprintf(p,"%f",y);

fclose(p);

}

(13)利用公式π/4≈1-1/3+1/5-1/7+……公式计算π的近似值,直到某一项的绝对值小于1e-6为止。(π/4的结果不包含此项)将计算结果以格式"%.6f"写入到考生文件夹中Paper子文件夹下的新建文件Design1.dat。

#include

#include

void main()

{ FILE *fp;

float n=1,t=1,pi=0;

int i;

/*考生在这里添加代码*/

i=1;

while(fabs(t)>=1e-6)

{ pi+=t; i++; n= - n ;

t=n/(2*i-1);

}

fp=fopen("Design1.dat","w");

fprintf(fp,"%.10f",pi*4);

fclose(fp);

}

(14)计算表达式1+2!+3!+…+12!的值,并将计算结果以格式"%ld"写入考生文件夹中Paper子文件夹下的新建文件Design2.dat。

#include

void main()

{ FILE *p; long s=1,k=1; int i;

/*考生在这里添加代码*/

for (i=2;i<=12;i++)

{ k=k*i;

s+=k;

}

p=fopen("Design2.dat","w");

fprintf(p,"%ld",s);

fclose(fp);

}

(15)计算数列1,-1/3!,1/5!,-1/7!,1/9!,……的和至某项的绝对值小于1e-5时为止(该项不累加),将求和的结果以格式"%.6f"写入到考生文件夹中Paper子文件夹下的新建文件Design1.dat中。

#include

#include

void main()

{ FILE *p; float s=1,t=1,i=3;

/*考生在这里添加代码*/

while ( fabs(-t/(i-1)/i)>=1e-5)

{ t=-t/(i-1)/i;

s+=t;

i+=2;

}

p=fopen("Design1.dat","w");

fprintf(p,"%.6f",s);

fclose(p);

}

(16)计算多项式a0+a1*sin(x)+a2*sin(x*x)+a3*sin(x*x*x)+…..+a9*sin(x*x*x*x*x*x* x*x*x)的值,并将结果以格式"%.6f"写入到考生文件夹中Paper子文件夹下的新建文件Design2.dat中。

#include

#include

void main()

{ FILE *p;

int i; float x=2.345,t=1.0,y=0.0;

float a[10]={1.2,-1.4,-4.0,1.1,2.1,-1.1,3.0,-5.3,6.5,-0.9};

/*考生在这里添加代码*/

y=a[0]; t=x;

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

{ y+=a[i]*sin(t);

t=t*x;

}

p=fopen("Design2.dat","w");

fprintf(p,"%.6f",y);

fclose(p);

}

(17)有数列:2/1,3/2,5/3,8/5,13/8,21/13,......求出数列的前40项的和。将计算结果以格式"%.6f"

写入到考生文件夹中Paper子文件夹下的新建文件Design1.dat中。

#include

void main()

{ FILE *p;

int i;

float f1=1.0,f2=2.0,t1=2.0,t2=3.0,s;

float f,t;

s=t1/f1+t2/f2;

/*考生在这里添加代码*/

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

{ t=t1+t2; f=t2;

t1=t; f1=f; t2=t1+t2; f2=t1;

s+=t1/f1+t2/f2;

}

p=fopen("Design1.dat","w");

fprintf(p,"%.6f",s);

fclose(p);

}

(18)累加a字符串各个字符的ASCII码值,然后将累加和以格式"%d"写入到考生文件夹中Paper子文件夹下的新建文件Design2.dat中。

#include

void main()

{ FILE *p; int s=0,i=0;

char *a="r235%^%34cdDW,.";

/*考生在这里添加代码*/

for (i=0;a[i]!='\0';i++)

s+=a[i];

p=fopen("Design2.dat","w");

fprintf(p,"%d",s);

fclose(p);

}

(19)计算2的平方根、3的平方根、……、10的平方根之和,要求计算结果具有小数点后10位有效位数,并以格式"%.10f\n"写入到考生文件夹中Paper子文件夹下的新建文件Design2.dat中。

#include

#include

void main()

{ FILE *p;

/*考生在这里添加代码*/

int i; double s=0;

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

s+=sqrt(i);

p=fopen("Design2.dat", "w");

fprintf(p,"%.10f\n",s);

fclose(p);

}

(20)x[i],y[i]分别表示平面上的一个点的坐标,求下列10个点与点(1.0,1.0)的距离的总和,并将结果以格式"%.6f"写入到考生文件夹中Paper子文件夹下的新建文件Design2.dat。

#include

#include

void main()

{ FILE *p;

int i;

float x[10]={-1.5,2.1,6.3,3.2,-0.7,7.0,5.1,3.2,4.5,7.6};

float y[10]={3.5,7.6,8.1,4.5,6.0,1.1,1.2,2.1,3.3,4.4};

float s=0.0;

/*考生在这里添加代码*/

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

s+=sqrt((x[i]-1.0)*(x[i]-1.0)+(y[i]-1.0)*(y[i]-1.0));

p=fopen("Design2.dat","w");

fprintf(p,"%.6f",s);

fclose(p);

}

《C程序设计》作业内容

实验一C语言的运行环境的使用 一、目的与要求 1. 了解Windows系统下C语言的运行环境,熟悉C程序调试、运行的基本操作方法。 2. 熟练掌握编辑、编译、连接和运行C程序的方法。 3. 通过运行简单的C程序,初步了解C源程序的特点。 4. 初步理解C语言的数据类型,了解变量定义、变量赋值以及简单运算方法,了解程序运 行结果的基本输出方法。 二、实验例题 在C语言运行环境下,按以下例题要求完成程序的编辑、编译、连接和运行,直至取得正确的运行结果。 【例1】编程实现在屏幕上显示如下三行文字 Hello, world ! Wolcome to the C language world! Everyone has been waiting for. (1)输入如下程序: #include int main() { printf("Hello,World!\n"); printf("Wolcome to the C language world!\n"); printf("Everyone has been waiting for.\n"); return 0; } (2)将输入的程序以文件名example.c存盘。 (3)编译:通过“组建”(Build) 下拉菜单中的“编译”(compile)命令,编译example.c,若出现编译错误,则修改程序,重新编译,直至编译成功,系统自动生成目标文件example.obj。 (4)连接:通过“组建”(Build)下拉菜单中的“组建”(Build)命令,生成以.exe为扩展名的可执行文件example.exe。 (5)运行:通过“组建”菜单下的“执行”(Excute)命令运行程序并观察运行结果。 【例2】编写程序,将两个整数相加,并输出结果。 #include int main() { int a,b,sum; a=123;b=456; sum=a+b; printf(“sum is %d\n”,sum); return 0;}

程序设计练习题

第六章程序设计 1、下列程序运行时,若从键盘上输入20,则屏幕上的输出是多少?Input “请输入一个数:” to x If x<=10 Y=2*x-5 Else Y=2*x+5 Endif ? Y 2、执行下列程序后,变量A的值为多少?B的值为多少? A=100 B=200 IF A-B<0 T=A A=B B=T ENDIF ? A,B 3、下列程序运行时,若从键盘上输入25时,屏幕上显示的结果是多少?INPUT “X=” TO X DO CASE CASE X>10 ? “A1” CASE X>20 ? “A2” OTHERWISE ? “A3” ENDCASE RETURN

4、执行下列程序,变量T中的值是多少? T=1 FOR I=1 TO 5 T=T*I ENDFOR ? “T=”,T 5、执行下列程序,屏幕上输出的是多少? D=”” SS=”ABCDE” FOR I=1 TO 5 D=D+SUBSTR(SS,6-I,1) ENDFOR ? D 6、执行下面程序,屏幕上输出的Y是多少? STORE 0 TO X,Y DO WHILE .T. X=X+1 DO CASE CASE INT(X/2)=X/2 LOOP CASE X>=10 EXIT OTHERWISE Y=Y+X ENDCASE ENDDO ? Y 7、下列程序运行时,若从键盘上输入5,则屏幕上输出的是_______。Input "请输入一个数:" to x Do case

Case x>10 ?"A1" Case x>20 ?"A2" otherwise ?"A3" Endcase Return 8、执行下列程序片段后,变量T中的值是_______。 T=1 FOR I=1 TO 5 T=T*I ENDFOR ? "T=",T 9、如下程序显示的结果是。 s=1 i=0 do while i<8 s=s+i i=i+2 Enddo ?s 10、如下程序的输出结果是。 i=1 DO WHILE i<10 i=i+2 ENDDO ?i 11、执行下列程序后,变量A的值为_______,变量B的值为_______。

《全国计算机等级考试二级VFP》模拟试题

全国计算机等级考试二级VFP模拟试题(一) (1)数据的存储结构是指()。 A)存储在外存中的数据 B)数据所占的存储空间量 C)数据在计算机中的顺序存储方式 D)数据的逻辑结构在计算机中的表示 D:【解析】在对数据进行处理时,各数据元素在计算机中的存储关系,即为数据的存储结构。 (2)下列关于栈的描述中错误的是()。 A)栈是先进后出的线性表 B)栈只能顺序存储 C)栈具有记忆作用 D)对栈的插入与删除操作中,不需要改变栈底指针 B:【解析】栈是限定在一端进行插入与删除的线性表。栈顶(top):插入数据(即入栈)的一端;栈底(bottom):不能入栈也不能出栈的一端。栈存储数据的原则:"先进后出"或"后进先出"。栈的特性是具有记忆作用。 (3)对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是()。 A)冒泡排序为n/2 B)冒泡排序为n C)快速排序为n D)快速排序为n(n-1)/2 D:【解析】假设线性表的长度为n,则在最坏情况下,冒泡排序需要经过n/2遍的从前往后的扫描和n/2遍的从后往前的扫描,需要的比较次数为n(n-1)/2。快速排序法也是一种互换类的排序方法,但由于它比冒泡排序法的速度快,因此,称为快速排序法。 (4)对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为()。A)log2n B)n/2 C)n D)n+1

C:【解析】在进行顺序查找过程中,如果被查的元素是线性表中的最后一个元素,或者被查元素根本不在线性表中,则为了查找这个元素需要与线性表中的所有元素进行比较,这是顺序查找的最坏情况,需要比较的次数为n次。 (5)下列对于线性链表的描述中正确的是()。 A)存储空间不一定连续,且各元素的存储顺序是任意的 B)存储空间不一定连续,且前件元素一定存储在后件元素的前面 C)存储空间必须连续,且前件元素一定存储在后件元素的前面 D)存储空间必须连续,且各元素的存储顺序是任意的 A:【解析】一般来说,在线性表的链式存储结构中,各数据结点的存储序号是不连续的,并且各结点在存储空间中的位置关系与逻辑关系也不一致。在线性链表中,各数据元素之间的前后件关系是由各结点的指针域来指示的,指向线性表中第一个结点的指针head称为头指针,当head=NULL(或0)时称为空表。 (6)下列对于软件测试的描述中正确的是()。 A)软件测试的目的是证明程序是否正确 B)软件测试的目的是使程序运行结果正确 C)软件测试的目的是尽可能多地发现程序中的错误 D)软件测试的目的是使程序符合结构化原则 C:【解析】软件测试是为了发现错误而执行程序的过程。一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例;一个成功的测试是发现了至今尚未发现的错误的测试。软件测试的目的要以查找错误为中心,而不是为了演示软件的正确功能。 (7)为了使模块尽可能独立,要求()。 A)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强 B)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱 C)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱 D)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强 B:【解析】模块的独立性是指,每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。模块的独立程度是评价设计好坏的重要度量标准。衡量软件的模块独立性使用耦合性和内聚性两个定性的度量标准,两者是相互联系的。一般较优秀的软件设计,应尽量做到高内聚、低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。

C语言程序设计练习题(含程序及参考答案)

1、定义一个函数int fun(int a,int b,int c) ,它的功能是:若a,b,c能构成等边三角形函数返回3,若能构成等腰返回2, —般三角形返回1,若不能构成三角形返回0。 #include int fun(int a,int b,int c) { if(a+b>c && b+c>a && a+c>b) { if(a==b && b==c ) return 3; else if(a==b||b==c||a==c) return 2; else return 1; } else return 0; } void main() { int a,b,c,shape; printf("\nl 叩ut a,b,c:"); scanf("%d%d%d", &a,&b,&c); printf("\na=%d, b=%d, c=%d\n",a,b,c); shape =fun(a,b,c); printf("\n\nThe shape : %d\n",shape); }

2、编写一个程序,将两个变量的值交换,例如变量a中的值原为 3 , b中的值原为8,程序运行后a中的值为8, b中的值为3。 #include void fun(int *x,int *y) { int t; t=*x;*x=*y;*y=t } void main() { int a=3,b=8; printf("%d %d\n",a,b); fun(&a,b); printf("%d %d\n",a,b); } 3、从键盘输入3个数,将最大值放在变量a中,最小值放在变量c 中。 例如,输入的数为:55 12 34 , 输出结果应当是:a=55.0,b=34.0,c=12.0 。 #include void fun(float *p,float *q,float *s) { float k; if (*p<*q) { k=*p;*p=*q;*q=k;} if (*q<*s) { k=*s;*s=*p;*p=k;}

C语言程序设计作业参考答案

《C语言程序设计》作业参考答案 作业一 C语言概述 一、选择题: 1-5 ACDCB 二、编程题: main() { printf(“****************************************\n”); printf(“ Hello,world! \n”); printf(“****************************************\n”); } 作业二程序的灵魂——算法 一、填空题: 1.确定性有效性有零个或多个输入有一个或多个输出 2.顺序结构选择结构循环结构 3.函数 作业三数据类型、运算符与表达式 一、选择题: 1-5 BDDAB 6-10 BCAAB 11-15 BCADC 16-20 DACCA 21-25 ADDBA 26-30 DDDDD 作业四顺序结构 一、选择题: 1-5 BCDDD 6-10 BDADD 二、填空题: 1.【31.415920,3.14159e+01】 2.【c=k】 3.【a=1,b=空格,c=2】 4.【a=12,b=345】 5.【c=A】 作业五选择结构 一、选择题:1-5 ADCBC 6-10 BBBBA 11-15 DBAAC 16-17 CB 二、填空题: 1.【-1】 2.【3】 3.【4】 4.【11】 5.【97或'a'】 作业六循环结构 一、选择题: 1-5 CBAAC 6-10 CBCCB 11-15 DBDDB 16-20 BCAAC 21-25 CDBBB

作业七数组 一、选择题: 1-5 CDDAC 6-10 CCDBC 11-15 DDBCA 16-20 DCBDD 21-23 BDB 二、填空题: 1. LBLMNP 2. SW* 3. mo 4. a=2,b=1 作业八函数 一、选择题: 1-5 AAACA 二、填空题: 1.【编程中的main( )函数】 2.【函数说明部分】和【函数体】 3.【–125= –5*5*5】 4.【void add (float a, float b)】【float add (float a, float b)】 5.【i=7; j=6; x=7 i=2; j=7; x=5】 6.【111】 三、编程题: 1.参考代码 main() { int score,temp,log; char grade; log=1; while (log) { printf(“enter score:”); scanf(“%d”,&score); if ((score>100)||(score<0)) printf(“\n error,try again! \n”); else log=0; } if (score==100)temp=9; else temp=(score-score%10)/10; switch(temp) { case 0:case 1:case2: case 3:case 4:case 5:grade=’E’;break; case 6:grade=’D’;break; case 7:grade=’C’;break; case 8:grade=’B’;break; case 9:grade=’A’; } printf(“score=%d,grade=%c\n”,score,grade); } 2.解:设计以高度n为参数的函数trangle(int n),打印等边三角形。参考程序如下: #include

程序设计训练报告

程序设计训练 报告 目录 一、设计题目 二、开发平台 三、需求分析 四、信息描述 五、总体分析 (一)、定义结构体体变量 (二)、功能模块 (三)、流程图 六、运行界面设计 七、设计心得 八、附录 源程序代码

一、设计题目: 职员管理系统 二、开发平台 开发平台:vc++6.0 企业版, 使用系统,winXP以上 三、需求分析 1、该程序可用于对企业员工工资情况基本信息的保存、查询等操作,以实现对企业员工工资的管理。 2、其中更新功能包括:添加工资信息、删除工资信息、修改工资信息、可根据需要添加一个或多个员工工资信息,也可对个别员工信息进行适当的删除或修改。以便随时更新员工工资信息。 3、程序中设计的查询功能可根据需要从若干数据中查询某个员工信息,并且可根据两种不同的方法查询:按工作证号查询和按查询。以满足不同的需要。 四、信息描述 职工信息包括职工号、、基本工资、奖金、扣款、税款,实发工资。 五、总体方案 (一)定义结构体体变量 typedef struct employee { char num[10]; //保存职工编号 char name[15]; //保存职工 float jbgz; //保存职工基本工资

float jj; //保存职工奖金 float kk; //保存职工扣款 float yfgz; //保存职工应发工资 double sk; //保存职工税款 double sfgz; //保存职工实发工资 }ZGGZ; (二)功能模块 菜单模块:显示职工管理系统的主菜单,供用户选择所需的功能,通过自己定义的void menu()函数来实现。 (1)输入模块 按照编号,,基本工资,奖金,扣款的顺序输入信息,税金和实发工资根据输入的信息进行计算得到,这些信息被录入到文件中。通

全国计算机等级考试二级VFP模拟试题及答案

全国计算机等级考试二级VFP模拟试卷考试及答案 第一项:单项选择题答案见最后 1、下面关于运行应用程序的说法,正确的是 A)APP应用程序可以在Visual FoxPro和Windows环境下运行 B)EXE应用程序只能在Windows环境下运行 C)EXE应用程序可以在Visual FoxPro和Windows环境下运行 D)APP应用程序只能在Windows环境下运行 2、调用报表格式文件pp1预览报表的命令是 A)REPORT FROM PP1 PREVIEW B)DO FROM PP1 PREVIEW C)REPORT FORM PP1 PREVIEW D)DO FORM PP1 PREVIEW 3、报表的数据源可以是 A)自由表或其他报表 B)数据库表、自由表或视图 C)数据库表、自由表或查询 D)表、查询或视图 4、确定列表框内的某个条目是否被选定应使用的属性是 A)Value B)ColumnCount C)ListCount D)Selected 5、在Visual FoxPro中,为了将表单从内存中释放(清除),可将表单中退出命令按钮的Click事件代码设置为 A)Thisform.Refresh B)Thisform.Delete C)Thisform.Hide D)Thisform.release 6、在Visual FoxPro中,控件分为 A)容器类和控件类 B)控件类和基类 C)容器类和基类 D)控件类的基础类 7、在Visual FoxPro中,扩展名为.DBC的文件是 A)数据库表文件 B)表单文件 C)项目文件 D)数据库文件 8、在下面Visual FoxPro表达式中,运算结果为字符串的是

C语言程序设计期末考试试题(含答案)

C语言程序设计 期末考试试题及其答案 一、单项选择题(本大题共20题,每题2 分,共40分) 1、以下不是C语言的特点的是( ) A、C语言简洁、紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件进行操作 D、C语言移植性好 2、以下不正确的C语言标识符是( ) A、ABC B、abc C、a_bc D、ab.c 3、一个C语言程序是由( ) A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是( ) A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性 5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为( ) A、int B、float C、double D、不确定 6、在C语言中,char型数据在内存中的存储形式是( ) A、补码 B、反码 C、源码 D、ASCII码 7、有如下程序,输入数据:12345M678<cR>后(表示回车),x的值是( ) 。 #include main(){ int x; float y; scanf("%3d%f",&x,&y); } A、12345 B、123 C、45 D、345 8、若有以下定义int a,b; float x,则正确的赋值语句是( ) A、a=1,b=2 B、b++; C、a=b=5 D、b=int(x); 9、以下程序的执行结果是( )

#include { int i=10,j=10; printf("%d,%d\n",++i,j--); } A、11,10 B、9,10 C、11,9 D、10,9 10、巳知字母A的ASCII码是65,以下程序的执行结果是( ) #include main() { char c1='A',c2='Y'; printf("%d,%d\n",c1,c2); A、A,Y B、65,65 C、65,90 D、65,89 11、下列运算符中优先级最高的是( ) A、< B、十 C、% D、!= 12、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0是( ) 。 A、’x’&&’y’ B、x<=y C、x||y+z&&y-z D、!((x<y)&&!z ||1) 13、判断char型变量cl是否为小写字母的正确表达式为( ) A、’a’<=c1<=f’z’ B、(c1>=a)&&(c1<=z) C、(‘a’>=c1) (‘z’<=c1) D、(c1>=’a’)&&(c1<=’z’) 14、字符串"a"在内存中占据的字节个数为( ) A、0 B、 1 C、 2 D、 3 15、下面有关for循环的正确描述是( ) A、for循环只能用于循环次数已经确定的情况 B、for循环是先执行循环体语句,后判定表达式 C、在for循环中,不能用break语句跳出循环体 D、for循环体语句中,可以包含多条语句,但要用花括号括起来 16、下面程序的运行结果是( ) #include main() {int num=0; while(num<=2) {num++; printf(“%d ,num); } } A、 1 B、 1 2 C、 1 2 3

C程序设计作业样本

第一章作业 答案:一,59,14.4,28.e 二1小题,59 2,15 一、将数89、20.25、40.875用十六进制表达 二、填空 1.在C语言中,数值常量0x3b十进制值是。 2.字母f ASCII码为十进制数___________。 第三章作业 一、选取题: 1、下列变量名中, B 是非法。 A) Tom B) 3n C) little_boy D) c10 2、若有如下类型阐明 char a; int b; float c; double d;则表达式a*b+d-c成果类型是(A ) A)float B)char C)int D)double 3、若x为整型,则逗号表达式(x=4*5,x*5),x+25成果及x值分别是(C )对的答案是100,45 A)45 20 B)125 20 C)125 45 D)100 100 4、假设所有变量均为整型,则表达式(a=3,b=2,b++,a+b)值是 C 。 A) 5 B) 8 C) 6 D)7 5、已知c2为字符型,则执行语句c2=’E’+’8’-‘A’后,c2值为 C 。 A) 12 B) 11 C)不拟定值D) 10

6、设a为double变量,b为int型变量,c为字符型变量,则a+b+c为( C )型 A) int B) float C) double D) char 7、C语言中不可用作标记符字符有( C ) A下划线 B % C数字 D字母 8、下面四个选项中,均是合法整型常量是(D ) A)160 B)- 0xcdf C)- 01 D)0x - 0xffff 01a 0668 2e5 9、设a为字符变量,b为int型变量,c为double型变量,则a*b+c为( C )型 A. int B. float C. double D. char 10.若a是int型变量,则表达式(a=4*5,a*2),a+4值为( C ) A. 20 B.22 C. 24 D. 44 第四章作业 一、选取题 1、若x为int型变量,则执行如下语句后x= C 。 x=5; x-=x-=x+x; A. -10 B. -5 C.0 D.10 2、在printf()函数格式阐明符中,字符型数输出格式阐明符是 D 。

模块化程序设计练习题及答案

第四章模块化程序设计练习题及参考答案 一、填空题 1、以下程序的运行结果是(111),把x定义为静态变量运行结果是(123)。void increment(void) { int x=0; x+=1; printf("%d",x);} main() { increment(); increment(); increment(); } 2、若输入的值是-125,以下程序的运行结果是(-125=-5*5*5) #include "" main() { int n; void f(int n); scanf("%d",&n); printf("%d=",n); if(n<0) printf("-"); n=fabs(n); fun(n); } void fun(int n) { int k,r; for(k=2;k<=sqrt(n);k++) { r=n%k; while(r==0) { printf("%d",k); n=n/k; if(n>1)printf("*"); r=n%k; } } if(n!=1) printf("%d\n",n); } 3、设有以下宏定义: #define WIDTH 80 #define LENGTH WIDTH+40 则执行赋值语句:v=LENGTH*20;(v为int型)后,v的值是(880) 4、设有以下宏定义: #define WIDTH 80 #define LENGTH (WIDTH+40)

则执行赋值语句:k=LENGTH*20;(k为int型变量)后,k的值是(2400) 5、下面程序的运行结果是(5) #define DOUBLE(r) r*r main() { int x=1,y=2,t; t=DOUBLE(x+y); printf("%d\n",t);} 6、下面程序的运行结果是(36) #define MUL(z) (z)*(z) main() { printf("%d\n",MUL(1+2)+3); } 7、下面程序的运行结果是(212) #define POWER(x) ((x)*(x)) main() { int i=1; while(i<=4) printf("%d,",POWER(i++)); } 8、下面程序的运行结果是(9) #define MAX(a,b) (a>ba:b)+1 main() { int i=6,j=8,k; printf("%d\n",MAX(i,j)); } 二、选择题 1、以下正确的说法是(D)建立自定义函数的目的之一是: A)提高程序的执行效率 B)提高程序的可读性 C)减少程序的篇幅 D)减少程序文件所占内存 2、以下正确的说法是(B) A)用户若需调用标准库函数,调用前必须重新定义 B)用户可以重新定义标准库函数,若如此,该函数将失原有含义。 C)系统根本不允许用户重新定义标准库函数。 D)用户若需调用标准函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调用。 3、以下正确的函数定义形式是(C) A)double fun(int x,int y) B)double fun(int x;int y) C)double fun(int x,int y); D)double fun(int x,y) 4、以下正确的说法是(D)。在C语言中: A)实参与其对应的形参各占用独立的存储单元。 B)实参和与其对应的形参共占用一个存储单元。 C)只用当实参和与其对应的形参同名时才共占用存储单元。

2017年计算机二级《VFP》考试题及答案

2017年计算机二级《VFP》考试题及答案 1). 如下描述中正确的是:( ) A.数据库中仅存储数据 B.数据库管理系统是数据库集合的组成部分 C.数据库中的数据具有很高的冗余并缺乏数据独立性 D.数据库管理系统是为数据库的建立、使用和维护而配置的软件 正确答案:D 答案解析:数据库是存储在计算机存储设备上的结构化的相关数据集合。它不仅包括描述事物的数据本身,而且还包括相关事物之间的联系。数据库管理系统是为数据库的建立、使用和维护而配置的软件,数据库系统的特点有:实现数据共享,减少数据冗余;采用特定的数据模型;具有较高的数据独立性;有统一的数据控制功能。 2). 某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)( )。 A.3 B.4 C.6 D.7 正确答案:D 答案解析:根据二叉树的基本性质3:在任意一棵二叉树中,度为O的叶子结点总比度为2的结点多一个,所以本题中度为2的结点为1-1=0个,所以知道本题目中的二叉树的每一个结点都有一个分支,所以共7个结点,共7层,即深度为7。 3). 下面不属于软件需求分析阶段主要工作的是( ) A.需求变更申请 B.需求分析 C.需求评审

D.需求获取 正确答案:A 答案解析:需求分析阶段的工作可概括为4个方面:①需求获取。②需求分析。③编写需求规格说明书。④需求审评。 4). 对于查询输出到临时表中的叙述,下列说法错误的是( ) A.产生的临时表文件的后缀名仍为.dbf B.执行查询后,该临时表文件是当前文件 C.可以像一般的dbf文件一样使用,可查询和修改表中记录 D.当关闭文件时,临时表文件将自动被删除 正确答案:C 5). “教师表”中有“职工号”、“姓名”和“工龄”等字段,其中“职工号”为主关键字,建立“教师表”的SQL命令是( )。 A.CREATETABLE教师表(职工号C(10)PRIMARY,姓名C(20),工龄I) B.CREATETABLE教师表(职工号C(10)FOREIGN,姓名C(20),工龄I) C.CREATETABLE教师表(职工号C(10)FOREIGNKEY,姓名C(20),工龄I) D.CREATETABLE教师表(职工号C(10)PRIMARYKEY,姓名C(20),工龄I) 正确答案:D 答案解析:在VisualFoxPro中,可以通过SQL的CREATETABLE命令建立表,PRIMARYKEY用来设置主关键字。本题“职工号”为主关键字,因此D选项正确。 6). 有A、B、C三个数据表,若已建立了A->B的关联,需要再建立B->C的关联,形成A->B->C的关联,则( ) A.必须使用带ADDITIVE子句的SETRELATION命令 B.直接利用SETRELATION命令进行关联 C.在保持A->B关联的基础上不能再建立B->C关联 D.在保持A->B关联的基础上不能在建立的B->C关联,但可以建立A->C关联

《C语言程序设计》综合练习题与答案

《C语言程序设计》综合练习题与答案 一、简要问答下列问题 1.什么是源程序? 2.C语言源程序的编译过程是怎样的? 3.简述C语言的特点 4.C/C++程序都是由函数组成的,其中最主要的、不可缺少的函数是哪一个?举例说明该函数的结构。 5.函数的返回值是通过什么语句来实现的,它的格式是什么? 6.在编写C程序时,为什么要把库函数的头文件包含到用户源程序中?如何把用户的头文件包含到用户源程序? 7.在计算机中,存储的数据为什么要分成多种不同的数据类型? 8.什么是常量?什么是变量? 9.C语言的五种基本数据类型有哪些?它们的关键字和所占的字节数分别是什么? 10.判断标识符是否合法的三条规则是什么? 11.什么是C语言的关键字?关键字对标示符有何影响? 12.全局变量和局部变量有什么区别? 13.什么是空语句,什么是语句块? 14.结构化程序设计的三种基本结构是什么? 15.三种循环语句各有什么特点? 16.什么叫多重循环结构? 17.Continue语句与break语句有什么区别? 18.字符与字符串有什么区别?‘b’与“b”相同吗? 19.什么是数组?一维数组的定义形式是怎样的? 20.字符串的结束标记是什么? 21.什么是按位操作?C语言对按位操作有哪些要求? 22.什么是指针?指针的两个操作符表示什么意义? 23.指针和数组有什么关系? 24.指针有那几种算术运算?说明指针变量的算术运算与一般变量的算术运算有何区别? 25.函数是由哪三部分组成的?函数定义的一般形式是什么? 26.函数原型是什么情况下使用?有什么作用? 27.形参和实参有什么关系,函数的两种调用方式是什么? 28.什么是函数的递归调用? 29.什么是函数指针?说明定义函数指针的一般形式。 30.什么是内部函数?什么是外部函数? 31.C语言的四种用户定义数据类型是什么? 32.C系统提供的三种主要预处理功能是什么? 33.什么是文件包含? 34.什么是文件?什么是流?

c程序设计作业

1、分析下面程序: # include int main() { char c1,c2; c1=97; c2=98; printf("c1=%c,c2=%c\n"c1,c2); printf("c1=%d,c2=%d\n",c1,c2); return 0; } (1)运行时会输出什么信息?为什么? (2)如果将程序第4,5行改为 c1=197; c2=198; 运行时会输出什么信息?为什么? (3)如果将程序第3行改为 int c1,c2; 运行时会输出什么信息?为什么? 答:(1)程序运行不了,因为程序存在错误。正确的程序为:#include int main() { char c1,c2; c1=97; c2=98; printf("c1=%c,c2=%c\n",c1,c2); printf("c1=%d,c2=%d\n",c1,c2); return 0; } (2)如果将程序第4,5行改为 c1=197; c2=198; 运行时会输出: (3)如果将程序第3行改为 int c1,c2; 运行时会输出:

因为int表示整型,%c是输出字符,a的ASCLL代码是97,b的是98,所以输出 c1=a,c2=b.%d是表示输出十进制整型,所以输出c1=97,c2=98 2、用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’。 问在键盘上如何输入? #include int main() { int a,b; float x,y; char c1,c2; scanf("a=%db=%d",&a,&b); scanf("%f%e",&a,&y); scanf("%c%c",&c1,&c2); return 0; } 答:输入如图: 输出如图: (此文档部分内容来源于网络,如有侵权请告知删除,文档可自行编辑修改内容, 供参考,感谢您的配合和支持)

程序设计基础练习题(全答案版)

《程序设计基础——C#.NET》练习 参考答案: 一、选择题 https://www.doczj.com/doc/5911379579.html,的目的就是将____A____作为新一代操作系统的基础,对互联网的设计思想进行扩展。A.互联网 B. Windows C. C# D. 网络操作系统 2.假设变量x的值为10,要输出x值,下列正确的语句是__C__。 A.System.Console.writeline(“x”) B. System.Cosole.WriteLine(“x”) C. System.Console.WriteLine(“x={0}”,x) D. System.Console.WriteLine(“x={x}”) 3.要退出应用程序的执行,应执行下列的_A___语句。 A. Application.Exit(); B. Application.Exit; C. Application.Close(); D. Application.Close; 4.关于C#程序的书写,下列不正确的说法是__D________。 A.区分大小写 B.一行可以写多条语句 C.一条语句可以写成多行 D.一个类中只能有一个Main()方法,因此多个类中可以有多个Main()方法 5. 在C#语言中,下列能够作为变量名的是__C__。 A.if B. 3ab C. b_3a D. a-bc 7. 能正确表示逻辑关系“a≥5或a≤0”的C#语言表达方式是__D__。 A.a>=5 or a<=0 B. a>=5|a<=0 C. a>=5&&a<=0 D. a>=5||a<=0 8. 以下程序的输出结果是___C_____。 A. 5 B. 4 C. 6 D. 不确定 9. If语句后面的表达式应该是__A___。 A.逻辑表达式 B. 条件表达式 C. 算术表达式 D. 任意表达式10.有如下程序:

全国计算机二级考试VF模拟试卷

全国计算机二级考试VF模拟试卷 2016年全国计算机二级考试VF模拟试卷 基本操作题(共4小题,第1和2题是7分、第3和4题是8分) 在考生文件夹下完成如下操作: 1.创建一个名为"订单管理"的数据库,并将已有的employee、orders和customer三个表添加到该数据库中。 2.为orders表建立一个普通索引,索引名为nf,索引表达式为"year(签订日期)"。 3.为employee表建立主索引,为orders建立普通索引,索引名和索引表达式均为"职员号"。通过"职员号"在employee表和 orders表之间建立一个一对多的永久联系。 4.为上述建立的联系设置参照完整性约束:更新规则为"限制",删除规则为"级联",插入规则为"限制"。 解题思路: 1.略 2.在“数据库设计器-订单管理”中,选择表“orders”并单击鼠标右键,选择“修改”命令,在“表设计器-orders.dbf”中,单击“索引”选项卡,然后输入索引名:nf,选择类型为“普通索引”,表达式为:year(签订日期),最后单击“确定”按钮,再单 击“是(Y)”就可以建立索引了。 3.略 4.略 简单应用(2小题,每题20分,计40分) 在考生文件夹下,完成如下简单应用:

1.在考生文件夹下已有表单文件formone.scx,如下图所示,其 中包含一个列表框、一个表格和一个命令按钮。 请按下面要求完成相应的操作: 1)在表单的数据环境中添加orders表。 2)将列表框List1设置成多选,另外将其的RowSourceType属性值设置为"8-结构"、RowSource设置为orders。 3)将表格Grid1的RecordSourceType的属性值设置为"4-SQL说明"。 4)修改"显示"按钮的Click事件代码。当单击该按钮时,表格Grid1内将显示在列表框中所选orders表中指定字段的内容。 解题思路: 1.打开并修改表单,单击“显示\数据环境”菜单项,在“打开”对话框中双击表“orders”,再单击“关闭”来关闭“添加表或视图”对话框。选中列表框List1,在其“属性”的RowSourceType 处选择“8-结构”,在RowSource处输入“orders”,在 MultiSelect处选择“.T.-真”。选中表格Grid1,在其“属性”的RecordSourceType处选择“4-SQL说明”。 双击“显示”按钮,在Command1.Click中修改相应的语句。 第1处:FORi=1TOthisform.List1.ListCount 第2处:s=thisform.List1.List(i) 第3处:s=s+","+thisform.List1.List(i) 2.利用查询设计器创建查询,从orders、employee和customer 表中查询2001年5月1日以后(含)所签所有订单的信息。查询结果 依次包含"订单号"、"签订日期"、"金额"、"签订者"和"客户名"五 项内容,其中"签订者"为签订订单的职员姓名。各记录按签订日期 降序排序,签订日期相同按金额降序排序;查询去向为表tableone。最后将查询保存在queryone.qpr文件中,并运行该查询。

(完整版)C程序设计语言复习题(试题及答案版)

一.填空题 26.C#源程序的后缀名为______.cs________。 26.C#中每个int 类型的变量占用____4___个字节的内存。 26.C#的每行语句以________分号_______结尾。 26.布尔型的变量可以赋值为关键字_____true__________或_____false_________。 26.如果int x的初始值为5,则执行表达式x - =3之后,x的值为_____2_________。 26.do...while语句在执行循环体_____之后________测试语句是否满足循环条件。 26.关键字_______class________表示一个类的定义。 26.如果一个类包含一个或多个抽象方法,它是一个_________抽象_____________类。 26.try块运行后,总是会执行_________finally_____________块中的代码。 26.一个数组如果有两个索引值,那么它是__________二维__________数组。 二.单项选择题 1.在对SQL Server 数据库操作时应选用()。 A、SQL Server .NET Framework 数据提供程序; B、OLE DB .NET Framework 数据提供程序; C、ODBC .NET Framework 数据提供程序; D、Oracle .NET Framework数据提供程序; 2.下列选项中,()是引用类型。 A、enum类型 B、struct类型 C、string类型 D、int类型 3.C#的数据类型有() A、值和调用类型; B、值和引用类型; C、引用和关系类型; D、关系和调用类型 4.下列描述错误的是() A、类不可以多重继承而接口可以; B、抽象类自身可以定义成员而接口不可以; C、抽象类和接口都不能被实例化; D、一个类可以有多个基类和多个基接口; 5.下列关于构造函数的描述正确的是() A、构造函数可以声明返回类型。 B、构造函数不可以用private修饰 C、构造函数必须与类名相同 D、构造函数不能带参数 6.int[][] myArray3=new int[3][]{new int[3]{5,6,2},new int[5]{6,9,7,8,3},new int[2]{3,2}}; 那么myArray3[2][2]的值是( )。 A、9 B、2 C、6 D、越界 7.接口是一种引用类型,在接口中可以声明(),但不可以声明公有的域或私有的成员变量。 A、方法、属性、索引器和事件; B、方法、属性信息、属性; C、索引器和字段; D、事件和字段; 8.在https://www.doczj.com/doc/5911379579.html,中,对于Command对象的ExecuteNonQuery()方法和ExecuteReader()方法,下面叙述错误 的是()。 A、insert、update、delete等操作的Sql语句主要用ExecuteNonQuery()方法来执行; B、ExecuteNonQuery()方法返回执行Sql语句所影响的行数。 C、Select操作的Sql语句只能由ExecuteReader()方法来执行; D、ExecuteReader()方法返回一个DataReder对象; 9.Winform中,关于ToolBar控件的属性和事件的描述不正确的是( )。 A、Buttons属性表示ToolBar控件的所有工具栏按钮 B、ButtonSize属性表示ToolBar控件上的工具栏按钮的大小,如高度和宽度 C、DropDownArrows属性表明工具栏按钮(该按钮有一列值需要以下拉方式显示)旁边是否显示下箭 头键 D、ButtonClick事件在用户单击工具栏任何地方时都会触发

C++程序设计练习题与答案(1)

C++程序设计练习题 一、填空题 1.对象的三大基本特性分别为多态性、( )、封装性。 2.赋值运算符应重载为( )函数。 3.用( )声明的基类称为虚基类。 4.用( )声明的函数称为虚函数。 5.派生类对基类继承控制访问有三种。派生类可以定义其基类中不具备的( )。 6.静态成员是对象的成员,( )函数不是类的成员。 7.在函数体之前加( )关键字可以防止覆盖函数改变数据成员的值。 8.一个const对象只能访问( )成员函数。 9.使用友元函数是为了提高程序效率,且节约了( )开销。 10.类名为“ClassName”的类,其拷贝构造函数的原型说明是( )。 11.由关键字private、public和protected限定成员的访问权限分别是( )、( )和( )。缺省关键字时成员的访问权限为( )。 12.如果想要公共基类在派生类中只有一个拷贝,就要将公共的基类说明为( );如果虚基类没有默认构造函数,就必须在每一个派生类的构造函数中都要调用虚基类的( )函数。 13.静态成员函数是使用关键字( )说明的成员函数。 14.一个函数的原型声明为“void FunName(int=0, double=0, char='x');”,则调用FunName函数的方法共有( )种。 15.编译时多态性是通过( )实现的;运行时多态性是通过( )实现的。 16.C++通过( )实现编译时多态性,通过( )实现运行时多态性。 17.在C++中,声明类的关键字是( )。 18.声明C++模板的关键字是( )。 19.调用函数原型声明为“void FunName(short, int=0, float=1.0);”的方法有( )种。 20.处理C++异常的方法:采用( )结构。 21.用关键字( )、( )和( )限定的成员,其访问权限分别为:公有的、私有的和保护的。缺省关键字时,成员的访问权限为( )。 22.在C++中,处理( )的方法是采用try-catch结构。 23.在C++中,用关键字( )说明内置函数。 24.在C++中,声明友元函数的关键字是( )。 25.将公共基类说明为( )时,多重派生过程中公共基类在派生类中就只有一个拷贝了。 26.在C++中,如果函数调用在前、定义在后,就必须先对函数进行( )。 27.在成员函数头之后、函数体之前加( )修饰的成员函数称为类的常成员函数。 28.包含纯虚函数的类称为抽象类,这种类只能用作( )来派生新类。由于抽象类的特殊性,我们可以说明抽象类的( ),但不能说明抽象类的( )。 29.说明函数类型为“double”、函数名为“virfun”且无参数的纯虚函数的表达形式为( )。 30.说明静态成员要使用关键字( )。

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