VC++上机题库100套题答案

VC++上机题库100套题答案
VC++上机题库100套题答案

VC++百套题答案

一.排序类(共45套)

a.找数排序

1)数位分解排序:

2题:{int i,j,t,k1,k2,k3,k4;

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

{k1=a[i]%10;k2=a[i]/10%10;

k3=a[i]/100%10;k4=a[i]/1000%10;

if(k1%2==0&&k2%2==0&&k3%2==0&&k4%2==0) b[cnt++]=a[i];}

for(i=0;i

for(j=i+1;j

if(b[i]

{t=b[i];b[i]=b[j];b[j]=t;}

}

15题:{int i,j,t,k1,k2,k3,k4;

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

{k1=a[i]%10;k2=a[i]/10%10;

k3=a[i]/100%10;k4=a[i]/1000%10;

if(k4<=k3&&k3<=k2&&k2<=k1&&a[i]%2==0)

b[cnt++]=a[i];

}

for(i=0;i

for(j=i+1;j

if(b[i]>b[j])

{t=b[i];b[i]=b[j];b[j]=t;}

}

29题:{int ab,cd,i,j,t,k1,k2,k3,k4;

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

{k1=a[i]%10;k2=a[i]/10%10;

k3=a[i]/100%10;k4=a[i]/1000%10;

ab=k4*10+k2;cd=k1*10+k3;

if(ab-cd>=10&&ab-cd<=20&&ab%2==0&&cd%2==0&&k4!=0&&k1!= 0)

b[cnt++]=a[i];

}

for(i=0;i

for(j=i+1;j

if(b[i]

{t=b[i];b[i]=b[j];b[j]=t;}

}

86题

{int ab,cd,i,j,t,k1,k2,k3,k4;

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

{k1=a[i]%10;k2=a[i]/10%10;

k3=a[i]/100%10;k4=a[i]/1000%10;

ab=k4*10+k2;cd=k1*10+k3;

if(ab>cd&&ab%2==0&&ab%5==0&&cd%2!=0&&k4!=0&&k1!=0)

b[cnt++]=a[i];

}

for(i=0;i

for(j=i+1;j

if(b[i]

{t=b[i];b[i]=b[j];b[j]=t;}

}

27题;if(k4-k3-k2-k1>0)

28题:

if(ab-cd)>=0&&ab-cd<=0&&ab%2!=0&&cd%2!=0&&k4!=0&&k1!=0 )

48题:if(k4+k1==k3+k2)

51题:if(isprime(ab)&&isprime(cd)&&k4!=0&&k1!=0)

52

题:if(ab%2!=0&&cd%2!=0&&(ab%5==0||cd%5==0)&&k4!=0&&k3! =0)

53题:if(k4-k3-k2-k1>0)

54题:if(k4+k3==k2+k1)

55题:if(isp(a[i]))

59

题:if(ab

68题:if(k1%2!=0&&k2%2!=0&&k3%2!=0&&k4%2!=0)

69题:if(k4-k3-k2-k1>=0&&a[i]%2!=0

72

题:if(ab%2==0&&cd%2==0&&(ab%9==0||cd%9==0)&&k1!=0&&k3! =0)

76

题:if((ab%2!=0&&cd%2!=0||ab%2==0&&cd%2==0)&&ab%17==0|| cd%17==0)&&k1!=0&&k3!=0

77题:if(k4+k2==k3+k1&&a[i]%2==0)

78题:if(k4>=k3&&k3>=k2&&k2>=k1&&a[i]%2!=0)

85题:(k1-k4-k3-k2>=0&&a[i]%2==0)

89题:if(k4+k1==k3+k2&&a[i]%2!=0)

2)连续大于后五个数或大于前五个数

第14题

int i,j,t,flag;

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

{flag=1;

for(j=i+1;j<=i+5;j++)

if(a[i]<=a[j]) {flag=0;break;} else flag=1;

if(flag==1&&a[i]%2!=0)

b[cnt++]=a[i];

}

for(i=0;i

for(j=i+1;j

if(b[i]>b[j])

{

t=b[i];b[i]=b[j];b[j]=t;

}

第30题

int i,j,t,flag;

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

{flag=1;

for(j=i+1;j<=i+5;j++)

if(a[i]>=a[j]) {flag=0;break;}

else flag=1;

if(flag==1&&a[i]%2==0)

b[cnt++]=a[i];

}

for(i=0;i

for(j=i+1;j

if(b[i]>b[j])

{

t=b[i];b[i]=b[j];b[j]=t;

}

第45题

int i,j,t,flag;

for(i=5;i<200;i++)

{flag=1;

for(j=i-5;j

if(a[i]<=a[j]) {flag=0;break;} else flag=1;

if(flag==1&&a[i]%2==0)

b[cnt++]=a[i];

}

for(i=0;i

for(j=i+1;j

if(b[i]

{

t=b[i];b[i]=b[j];b[j]=t;

}

第46题

int i,j,t,flag;

for(i=5;i<200;i++)

{flag=1;

for(j=i-5;j

if(a[i]<=a[j]) {flag=0;break;} else flag=1;

if(flag==1&&a[i]%2!=0&&a[i]%7==0) b[cnt++]=a[i];

}

for(i=0;i

for(j=i+1;j

if(b[i]

{

t=b[i];b[i]=b[j];b[j]=t;

}

3)后三位的排序

第5题

int i,j,t;

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

for(j=i+1;j<200;j++)

if(aa[i]%1000

{

t=aa[i];aa[i]=aa[j];aa[j]=t;

}

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

bb[i]=aa[i];

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

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

if(bb[i]%1000==bb[j]%1000)

if(bb[i]

{

t=bb[i];bb[i]=bb[j];bb[j]=t; }

第6题

int i,j,t;

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

for(j=i+1;j<200;j++)

if(aa[i]%1000>aa[j]%1000)

{

t=aa[i];aa[i]=aa[j];aa[j]=t;

}

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

bb[i]=aa[i];

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

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

if(bb[i]%1000==bb[j]%1000)

if(bb[i]>bb[j])

{

t=bb[i];bb[i]=bb[j];bb[j]=t; }

b.字符串排序:

第9题

int i,a,b;char t;

for(i=0;i

{

for(a=0;a

for(b=a+1;b

if(xx[i][a]

{

t=xx[i][a];xx[i][a]=xx[i][b];xx[i][b]=t; }

}

第88题

int i,a,b;char t;

for(i=0;i

{

for(a=0;a

for(b=a+1;b

if(xx[i][a]>xx[i][b])

{

t=xx[i][a];xx[i][a]=xx[i][b];xx[i][b]=t; }

}

第43题:

int i,a,b; char t;

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

{ for(a=1;a

for(b=a+2;b

if(xx[i][a]>xx[i][b])

{t=xx[i][a];xx[i][a]=xx[i][b];xx[i][b]=t;} }

第44题

int i,a,b,n;char t;

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

{n=(strlen(xx[i])+1)/2;

for(a=0;a

for(b=a+1;b

if(xx[i][a]

{t=xx[i][a];xx[i][a]=xx[i][b];xx[i][b]=t;} for(a=0,b=n;a

{t=xx[i][a];xx[i][a]=xx[i][b];xx[i][b]=t;} }

c.结构体排序:(共12套)

7题(12 13 32 38)

{int i,j;PRO t;

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

for(j=i+1;j<100;j++)

if(strcmp(sell[i].dm,sell[j].dm)<0)

{t=sell[i];sell[i]=sell[j];sell[j]=t;}

else if(strcmp(sell[i].dm,sell[j].dm)==0) if(sell[i].je

{t=sell[i];sell[i]=sell[j];sell[j]=t;}

}

}

31题(42 47 61 99)

{int i,j;PRO t;

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

for(j=i+1;j<100;j++)

if(sell[i].je

else if(sell[i].je==sell[j].je)

if(strcmp(sell[i].dm,sell[j].dm)<0)

{t=sell[i];sell[i]=sell[j];sell[j]=t;}

}

60题

{int i,j,cnt=0;data t;

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

if(aa[i].x2>aa[i].x1+aa[i].x3)

bb[cnt++]=aa[i];

for(i=0;i

for(j=i+1;j

if(bb[i].x2+bb[i].x3

{t=bb[i];bb[i]=bb[j];bb[j]=t;}

return cnt;

}

75题

{int i,j,cnt=0;data t;

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

if(aa[i].x1>aa[i].x2+aa[i].x3)

bb[cnt++]=aa[i];

for(i=0;i

for(j=i+1;j

if(bb[i].x1+bb[i].x3>bb[j].x1+bb[j].x3) {t=bb[i];bb[i]=bb[j];bb[j]=t;}

return cnt;

}

二.统计类

●筛选并求值的题

26统计类—求值

{int i,k;

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

if(xx[i]>0)

{totNum++;

k=xx[i]>>1;

if(k%2==0)

{totPjz+=xx[i];totCnt++;}

}

totPjz=totPjz/totCnt;

}

40题

{int i,k1,k2,k3,k4;

for(i=0;i

{

if(xx[i]>0)

totNum++;

k1=xx[i]/1%10;k2=xx[i]/10%10;

k3=xx[i]/100%10;k4=xx[i]/1000%10; if((k1+k2+k3+k4)%2==0)

{ totCnt++;totPjz+=xx[i];}

}

totPjz=totPjz/totCnt;

}

49题

{int i,k1,k2,k3,k4;

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

{k1=a[i]%10;k2=a[i]/10%10;

k3=a[i]/100%10;k4=a[i]/1000%10;

if(k4-k3-k2-k1>0)

{cnt++;pjz1+=a[i];}

else pjz2+=a[i];

}

pjz1=pjz1/cnt;pjz2=pjz2/(300-cnt);

}

65题

{int i=0,k1,k2,k3,k4;

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

if(xx[i]>0)

{totNum++;

k1=xx[i]%10;k2=xx[i]/10%10;

k3=xx[i]/100%10;k4=xx[i]/1000%10; if((k1+k2+k3+k4)%2!=0)

{totPjz+=xx[i];totCnt++;}

}

totPjz=totPjz/totCnt;

}

70题:与26题相似

80题:

if((k1-k4-k3-k2)>0)

81题:if(k4+k3==k2+k1)

82题: 略课堂讲过

87题:同81

if(k4+k1==k2+k3)

●选票和方差的题(共6套)

选票:

39题

int i,j,n=0;

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

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

if(xx[i][j]=='1')

n++;

if(n>0&&n<10)

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

if(xx[i][j]=='1')

yy[j]++;

n=0; }

58题

int i,j,n=0;

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

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

if(xx[i][j]=='1')

n++;

if(n>5)

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

if(xx[i][j]=='1')

yy[j]++;

n=0; }

84题

int i,j,n=0;

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

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

if(xx[i][j]=='1')

n++;

if(n<=5)

if(xx[i][j]=='1')

yy[j]++;

n=0;

}

方差

33题

/***************************/

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

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

fscanf(fp,"%d,",&xx[i*10+j]); fscanf(fp,"\n");

if(feof(fp))

break;

}

/**************************/

int i;

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

if(xx[i]%2!=0) {odd++;ave1+=xx[i];} else{even++;ave2+=xx[i];}

ave1=ave1/odd;ave2=ave2/even;

if(xx[i]%2==0)

totfc+=(xx[i]-ave2)*(xx[i]-ave2)/even;

83题

int i;

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

if(xx[i]%2!=0) {odd++;ave1+=xx[i];}

else{even++;ave2+=xx[i];}

ave1=ave1/odd;ave2=ave2/even;

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

if(xx[i]%2!=0)

totfc+=(xx[i]-ave1)*(xx[i]-ave1)/odd;

93题

int i;

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

{aver+=xx[i];

if(xx[i]%2!=0)

odd++;

else

even++;

}

aver=aver/1000;

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

totfc+=(xx[i]-aver)*(xx[i]-aver)/1000;

●精度计算(保留两位小数的题)

91题

cnt1=cnt2=0;

pj=0.0;

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

{if(xx[i]%2!=0) cnt1++;

else cnt2++;

if(i%2==0) j+=xx[i];

}

pj=(float)j/100;

92题

cnt=k=0;pj=0.0;

max=xx[0];

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

if(max

max=xx[i];

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

{if(max==xx[i])

cnt++;

if(xx[i]%3==0||xx[i]%7==0)

2009年4月上机100套题及答案51-60

2009年4月上机100套题51-60 第五十一套 给定程序的功能是:将n个人员的考试成绩进行分段统计,考试成绩放在数组a中,各分段的人数存到数组b中:成绩为60到69的人数存到b[0]中,成绩为70到79的人数存到b[l],成绩为80到89的人数存到b[2],成绩为90到99的人数存到b[3],成绩为100的人数存到b[4],成绩为60分以下的人数存到b[5]中。 例如,当数组a中的数据是:93、85、77、68、59、43、94、75、98。调用该函数后,数组b 中存放的数据应是:l、2、l、3、0、2。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在横线上填入所编写的若干表达式或语句。 试题程序: #include # define N 50 # define M 11 void fun(int a[], int b[],int n) { int i; for(i=0;i<6;i++) b[i]=0; for(i=0;i<【1】;i++) if(a[i]<60) b[5]++; 【2】 b[(a[i]-60)/10]++; } main() { int i,a[100]={93,85,77,68,59,43,94,75,98},b[6]; fun(【3】,9); printf("The resul\t is: "); for(i=0;i<6;i++) printf("%d ",b[i]); printf("\n"); } 【参考答案】 (1) n (2) else (3) a,b 【考点分析】 本题考查:for循环语句;if…else语句;函数调用。 【解题思路】 填空1:显然这个循环的次数和人员的个数有关,应填入n。 填空2:当a[i]<60,统计不及格的个数,相反则存入其他数组中,这里填入的是else。 填空3:根据函数传递规则,应给传递2个元素,很显然为a,b。 下列给定程序中,函数fun的功能是:求整数x的y次方的低3位值。例如,整数5的6次方为15625,此值的低3位值为625。

全国计算机三级数据库技术上机试题100道

1.【考点分析】本题考查对4位整数的排序。考查的知识点主要包括:数组元素的排序算法,if判断语句和逻辑表达式,以及求余算术运算。 【解题思路】此题属于4位数排序问题。本题需主要解决3个问题:问题1如何取4位数的后3位进行比较;问题2如何按照题目要求的条件(按照每个数的后3位的大小进行降序排列,如果后3位相等,则按照原始4位数的大小进行升序排列)排序;问题3如何将排完序的前10个数存到数组bb中去。 本题的解题思路为:使用双循环对数组按条件进行排序,然后将排完序的前10个数存到数组bb中。对于问题1可以通过算术运算的取余运算实现(aa[i]%1000);问题2通过包含if判断语句的起泡排序法就可以实现。 【参考答案】 void jsSort() { int i,j; /*定义循环控制变量*/ int temp; /*定义数据交换时的暂存变量*/ for(i=0;i<199;i++) /*用选择法对数组进行排序*/ for(j=i+1;j<200;j++) { if(aa[i]%1000aa[j]) /*则要按原4位数的值进行升序排序*/ { temp=aa[i]; aa[i]=aa[j]; aa[j]=temp; } } for(i=0;i<10;i++) /*将排序后的前10个数存入数组b中*/ bb[i]=aa[i]; } 【易错提示】取4位数后三位的算法,if判断语句中逻辑表达式的比较运算符。 2.【考点分析】本题主要考查的知识点包括:C语言循环结构,if判断语句和逻辑表达式,以及分解多位整数的算术运算。 【解题思路】分析题干,本题除给出条件"SIX+SIX+SIX = NINE+NINE"之外,还可得出2个隐含的条件:条件1:SIX和NINE分别是3位和4位的正整数;条件2:SIX的十位数字等于NINE的百位数字,NINE的千位数字和十位数字相等。 本题解题思路:通过嵌套的循环结构可以遍历到所有的3位和4位数,对于每一个3位数及4位数的组合进行题设条件(SIX+SIX+SIX = NINE+NINE)的判断,满足条件的对其分解得到各数位的数字,再进一步判断各位数字是否满足本题隐含的条件(条件1及条件2),如果满足则个数加1,并将该3位数及4位数添加到和值中。 【参考答案】 void countValue() { int i,j; int s2; int n2,n3,n4; for(i=100;i<1000;i++)

历年二级C语言笔试真题及答案

1 2009年9月全国计算机等级考试二级笔试 试卷 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) N-S 图 B) PAD 图 C) 程序流程图 D) E-R 图 8)数据库管理系统是 A )操作系统的一部分B) 在操作系统支持下的系统软件C) 一种编译系统 D) 一种操作系统 9)在E-R 图中,用来表示实体联系的图形是 A) 椭圆图B) 矩形C) 菱形D) 三角形 10)有三个关系R ,S 和T 如下: 其中关系T 由关系R 和S 通过某种操作得到,该操作为 A) 选择 B) 投影 C) 交 D) 并 11)以下叙述中正确的是 A )程序设计的任务就是编写程序代码并上机 B )程序设计的任务就是确定所用数据结 构 C )程序设计的任务就是确定所用算法 D )以上三种说法都不完整 12)以下选项中,能用作用户标识符的是 A )void B )8_8 C )_0_ D )unsigned 13)阅读以下程序 #include main() { int case; float printF; printf(“请输入2个数:”); scanf(“%d %f”,&case,&pjrintF); printf(“%d %f \n”,case,printF); } 该程序编译时产生错误,其出错原因是 A )定义语句出错,case 是关键字,不能 用作用户自定义标识符B )定义语句出错,printF 不能用作用户自定义标识符 C )定义语句无错,scanf 不能作为输入函 数使用 D )定义语句无错,printf 不能输出case 的值 14)表达式:(int)((double)9/2)-(9)%2的值是 A )0 B )3 C )4 D )5 15)若有定义语句:int x=10;,则表达式 x-=x+x 的值为 A )-20 B )-10 C )0 D )10 16)有以下程序 #include main() { int a=1,b=0; printf(“%d,”,b=a+b); printf(“%d \n”,a=2*b); } 程序运行后的输出结果是 A )0,0 B )1,0 C )3,2 D )1,2 17)设有定义:int a=1,b=2,c=3;,以下语 句中执行效果与其它三个不同的是 A )if(a>b) c=a,a=b,b=c; B )if(a>b) {c=a,a=b,b=c;} C ) if(a>b) c=a;a=b;b=c; D ) if(a>b) {c=a;a=b;b =c;} 18)有以下程序 #include main() { int c=0,k; for (k=1;k<3;k++) switch (k) {default: c+=k case 2: c++;break; case 4: c+=2;break; } printf(“%d \n”,c); } 程序运行后的输出结果是 A )3 B )5 C )7 D )9 19)以下程序段中,与语句:k=a>b?(b>c?1:0):0;功能相同的是 A )if((a>b)&&(b>c)) k=1;else k=0; B )if((a>b)||(b>c) k=1;else k=0; C )if(a<=b) k=0;else if(b<=c) k=1; D )if(a>b) k=1;else if(b>c) k=1; else k=0; 20)有以下程序 #include main() { char s[]={“012xy”};int i,n=0; for(i=0;s[i]!=0;i++) if(s[i]>=?a?&&s[i]<=?z?) n++; printf(“%d \n”,n); } 程序运行后的输出结果是 A )0 B )2 C )3 D )5 21)有以下程序 #include main() { int n=2,k=0; while(k++&&n++>2); printf(“%d %d \n”,k,n); } 程序运行后的输出结果是 A )0 2 B )1 3 C )5 7 D )1 2 22)有以下定义语句,编译时会出现编译错误的是 A )char a=?a? B )char a=?\n?; C )char a=?aa?; D )char a=?\x2d?; 23)有以下程序 #include main() { char c1,c2; c1=?A?+?8?-…4?; c2=?A?+?8?-…5?; printf(“%c,%d \n”,c1,c2); } 已知字母A 的ASCII 码为65,程序运行后的输出结果是

行测100套模拟试题含答案5(共6)

---------数量关系部分题目溯源: 1、33, 32, 34, 31, 35, 30, 36, 29,? A. 33 B. 37 C. 39 D. 41 选B 解答:交叉数列(即隔项或称奇偶数列)。分项后为等差数列。 源自:国考2002年A类第5题 34、36、35、35、()、34、37、() 都是交叉等差数列,并且公差为1和-1。 2、3, 9, 6, 9, 27,?, 27 A. 15 B. 18 C. 20 D. 30 选B 解答:二级作商周期数列。两两作商得到:3、2/3、3/2、3、2/3、3/2。 源自:国考2003年A类第1题 1、4、8、13、16、20、() 原题是二级作差周期数列,新题是二级作商周期数列。 3、2, 12, 6, 30, 25, 100,? A. 96 B. 86 C. 75 D. 50 选A 解答:变形奇偶数列。偶数项分别为前项乘以6、5、4得到,奇数项分别为前项减去6、5、4得到。 源自:北京应届2007年第4题 2,7,14,21,294,( ) 原题为:奇数项为前两项之乘积,偶数项为前两项之和。 4、4, 23, 68, 101,? A. 128 B. 119 C. 74.75 D. 70.25 选C 解答:变倍数递推数列。后一项分别为前一项剩以6、3、1.5、0.75再减去1得到。 4×6-1=23

23×3-1=68 68×1.5-1=101 101×0.75-1=74.75 源自:北京应届2007年第1题 2,13,40,61,( ) 只是把原题规律当中的加1变成了减1,连扩大的比例都没有改变。 5、323, 107, 35, 11, 3,? A. -5 B. 1/3 C. 1 D. 2 选B 解答:倍数递推数列。前一项减去2后乘以1/3得到后一项。 (323-2)×1/3=107 (107-2)×1/3=35 (35-2)×1/3=11 (11-2)×1/3=3 (3-2)×1/3=1/3 此题亦可倒过来看,即是后一项乘以3再加2得到前一项。 源自:浙江2004年第3题 0,1,4,13,40,( ) 把大小变化方向反过来,就只是把原题规律当中的加1变成了新题当中的加2。 11、甲、乙、丙、丁四人今年分别是16、12、11、9岁。问多少年前,甲、乙的年龄和是丙、丁年龄和的2倍? A、4 B、6 C、8 D、12 源自:国家2004年B类第50题 祖父年龄70岁,长孙20岁,次孙13岁,幼孙7岁,问多少年后,三个孙子的年龄之和与祖父的年龄相等? 15、某车间进行季度考核,整个车间平均分是85分,其中2/3的人得80分以上(含80分),他们的平均分是90分,则低于80分的人的平均分是多少? A、68 B、70 C、75 D、78

《数据库》上机练习题

数据库期中上机考试题 1、在E:\学教管理系统\的路径下建立“学教管理”数据库 2、从服务器jsj上的“jxgl1“库中导入数据到“学教管理”数据库中。 3、在‘学教管理’数据库中增加两个数据表Scholarship-class (奖学金等级,平均最低成绩,金额),Scholarship(学号,奖学金等级,获奖时间),并建立相应的主码、外码和关联。 4、创建“学教管理”数据库中表之间的关系。 5、根据“学教管理”数据库中的基本数据表,进行下列各操作 1)修改Grade表,添加主码、外部码及关联,以及成绩限制在0~100之间。 2)在课程表中增加一个‘先修课号’属性,用于指定在学本课之前必须先修的课程,如果为空,则表示该课没有要求的先修课程。 3)向Student表中录入一条新记录(2005061,赵五,男) 4)分别向Class和grade表中录入一些2009信管管理、2009工商管理、2009旅游管理、2009数理经济四个班级的信息,以及四个班级的一些同学的选课信息。。 5)将李勇的计算机网络成绩置空。 6)找出所有被学生选修了的课程号。 7)查询01311班女同学的个人信息。 8)查询没有选修1号课程的学生姓名与班级号,并按班级号分组和排序。 9)查询姓李的学生的所有信息。 10)查询2009信息管理专业学生的数据库成绩 11)求选修了所有课程的学生学号和姓名。 12)求选修了数据库课程的学生人数。 13)列出每门课程的选修人数。 14)查询选修了3门课以上的学生学号和姓名 15)查询学生张婷婷选修的课程号、课程名和成绩 16)找出2009数理经济班所学数据库的平均分、最高分、最低分 17)找出与李勇在同一班级的学生基本情况信息 18)找出年龄介于李勇的年龄和25之间的学生信息 19)TOM已退学,从数据库删除有关他的相应记录。

word上机操作练习题库

Word 基本操作练习题 1.字处理题 请在"考试项目"菜单上选择"字处理软件使用"菜单项,完成以下内容: ******本题型共有1小题****** 在考生文件夹中,存有文档WT1.DOC,其内容如下: 【文档开始】 本专业培养目标是计算机专业的技术应用型人才,他们应该掌握计算机软件、硬件及系统的基本理论、基本方法和基本技能,能够从事计算机及相关领域应用技术工作、软、硬件维护、和一般应用系统的开发及设计,他们应该具有专业化计算机人的素质,是全面发展的社会主义建设人才。 【文档结束】 按要求完成下列操作: (1)请将Word文档WT1.DOC设成楷体、小三号字并加粗、斜体。 (2)设置A4(210mm×297mm)纸张大小,左右边距设置为2.5厘米,页眉2.2厘米,其余页面设置的参数不必修改。保存文件为WD1.DOC。 2.请在"考试项目"菜单上选择"字处理软件使用"菜单项,完成以下内容: ******本题型共有4小题****** 1. 在考生文件夹中,存有文档WT 2.DOC,其内容如下: 【文档开始】 面向对象方法基于构造问题领域的对象模型,以对象为中心构造软件系统。它的基本方法是用对象模拟问题领域中的实体,以对象间的联系刻画实体间的联系。因为面向对象的软件系统的结构是根据问题领域的模型建立起来的,而不是基于对系统应完成的功能的分解,所以,当对系统的功能需求变化时并不会引起软件结构的整体变化,往往仅需要一些局部性的修改。例如,从已有类派生出一些新的子类以实现功能扩充或修改,增加删除某些对象等等。总之,由于现实世界中的实体是相对稳定的,因此,以对象为中心构造的软件系统也是比较稳定的。 【文档结束】 按要求完成下列操作:新建文档WD2.DOC,插入文件WT2.DOC的内容,设置为小四号仿宋_GB2312字体,分散对齐,所有"对象"设置为黑体、加粗,存储为文件WD2.DOC。 2. 新建文档WD2A.DOC,插入文件WD2.DOC的内容,将正文部分复制2次,将前两段合并为一段,并将此段分为3栏,栏宽相等,栏宽为 3.45厘米,栏间加分隔线。存储为文件 WD2A.DOC。 3. 制作3行4列表格,列宽2厘米,行高1厘米。填入数据,水平方向上文字为居中对齐,数 4. 并将第4行设置为黄色底纹,统计1、2、3列的合计添加到第4行,存储为文件WD2C.DOC。 请在"考试项目"菜单上选择"字处理软件使用"菜单项,完成以下内容: ******本题型共有2小题****** 3. 在指定文件夹下打开文档WT3.DOC,其内容如下: 【文档开始】

数据库上机实验题目和答案

试用SQL的查询语句表达下列查询: 1.检索王丽同学所学课程的课程号和课程名。 select Cno ,Cname from c where Cno in (select cno from sc where sno in (select sno from s where sname='王丽' )) 2.检索年龄大于23岁的男学生的学号和姓名。 select sno,sname from s where sex='男' and age>23 3.检索‘c01’课程中一门课程的女学生姓名 select sname from s where sex='女' and sno in (select sno from sc where cno='c01') 4.检索s01同学不学的课程的课程号。 select cno from c where cno not in (select cno from sc where sno ='s01') 5.检索至少选修两门课程的学生学号。 select sc.sno from s,sc where s.sno=sc.sno group by sc.sno having count(https://www.360docs.net/doc/8f9942607.html,o)>=2 6.每个学生选修的课程门数。 解法一: select so.sno sno,https://www.360docs.net/doc/8f9942607.html,ount,s.sname from(select sc.sno sno,count(sc.sno) ccount from sc,s where s.sno=sc.sno group by sc.sno ) so,s where s.sno=so.sno 解法二: select sc.sno sno,s.sname,count(sc.sno) ccount from sc,s where s.sno=sc.sno group by sc.sno,sname

用友上机操作题(平时上机练习题)

实验一总帐 一、系统管理 1、注册系统管理。以系统管理员(admin)的身份注册系统管理。 2、设置操作员。 编号姓名口令所属部门 001王亮1财务部 002唐非2财务部3、建立帐套。 账套号: 888 账套名称:广州市 账套路径:默认 启用会计期:2013年1月 单位名称:广州市白云工商高级技工学校 单位简称:白云学院 记账币种:人民币 企业类型:工业 行业性质:新会计制度科目 账套主管: demo 分类信息:对客户、供应商、存货分类,有外币核算 编码方案:科目编码级次为4-2-2-2-2,其他编码级次采用默认值 数据精度:保留的小数位均为2 系统启用:启用总账子系统;启用日期:2013-01-01 4、设置操作员权限 王亮:拥用“公用目录设置”、“总账”、“财务报表”、“现金管理”的全部权限 唐非:拥有“公共目录设置”及“总帐”中的所有权限 由001进行初始化设置 二、系统初始化 1、部门档案 部门编码部门名称 1管理部

2财务部 3采购部 4销售部 2、职员档案 职员编号职员名称所属部门101李同管理部 201赵超财务部 202王刚财务部 301张海采购部 401刘英销售部 3、客户档案 客户编码客户名称客户简称地址邮政编码 001北京育新 小学 育新小学 002天津宏达 公司 宏达公司 4、供应商档案 供应商编 码供应商名称 供应商简 称 地址 邮政编 码 001北京迅达有限责 任公司 北京迅达 002深圳华光软件公 司 深圳华光 5、外币及汇率币符:USD 币名:美元,

记账汇率:6.5 6、结算方式 结算方式编码结算方式名称票据管理1现金否 2支票否 3其他否 7、凭证类别 凭证类别限制类型限制科目 收款凭证借方必有1001,1002 付款凭证贷方必有1001,1002 转账凭证凭证必无1001,1002 8、会计科目 科目名称辅助核 算 科目 类型 方向 币别 计量 期初余额 现金(1001)日记资产借5000银行存款(1002)银行日 记 资产借125000 工行存款(100201)银行日 记 资产借80000 中行存款(100202)银行日 记 资产借美元45000 应收账款(1131)客户往 来 资产借*30000其他应收款(1133)个人往 来 资产借*2000库存商品(1243)资产借155000

数据库上机习题及答案

数据库及应用复习题 一、设计题 有一个[学生课程]数据库,数据库中包括三个表: 学生表Student由学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)、所在系(Sdept)五个属性组成,记为: Student(Sno,Sname,Ssex,Sage,Sdept) ,Sno 为关键字。 课程表Course由课程号(Cno)、课程名(Cname)、先修课号(Cpno)、学分(Ccredit)四个属性组成,记为:Course(Cno,Cname,Cpno,Ccredit) Cno为关键字。 成绩表SG由学号(Sno)、课程号(Cno)、成绩(Grade)三个属性组成,记为:SG(Sno,Cno,Grade) (SNO, CNO)为关键字。 用SQL语言实现下列功能: 1.建立学生表Student,其中学号属性不能为空,并且其值是唯一的。 2.向Student表增加“入学时间(Scome)”列,其数据类型为日期型。 3.查询选修了3号课程的学生的学号及其成绩,查询结果按分数的降序排列。4.查询学习1号课程的学生最高分数、平均成绩。 5.查询与“李洋”在同一个系学习的学生。 6.将计算机系全体学生的成绩置零。 7.删除学号为05019的学生记录。 8.删除计算机系所有学生的成绩记录。 1. CREATETABLE Student (Sno CHAR(5) NOT NULL UNIQUE, Sname CHAR(20), Ssex CHAR(2), Sage INT, Sdept CHAR(15)) 2. ALTER TABLE Student ADD Scome DATETIME 3. SELECT Sno, Grade FROM SG WHERE Cno='3' ORDER BY Grade DESC 4. SELECT MAX(Grade), AVG(Grade) FROM SC WHERE Cno='1' 5. SELECT Sno, Sname, Sdept FROM Student WHERE Sdept IN

2020年9月全国计算机等级考试二级C语言上机题库(共60套全)

2020年9月全国计算机等级考试二级C语言上机题库(共60 套全) 第一套 1 程序填空 人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中。函数fun的功能是:找出指定出生年份的人员,将其数据放在形参k所指出的数组中,由主函数输出,同时由函数值返回满足指定条件的人数。第1处if (std[i].year==year) 第2处k[n++]=std[i]; 第3处return (n); 1程序修改 给定程序MODI1.C中函数fun的功能是:读入一个整数k(2≤k≤10000)打印它的所有质因子(即所有为素数的因子)。 /**found**/ IsPrime (int n) /**found**/ if (!(n%i)) 2程序设计 已知学生的记录由学号和学习成绩构成,N名学生的数据已存入结构体数组a中。请编写给函数fun,函数的功能是:找出成绩最高的学生的记录,通过形参指针传回主函数(规定只有一个最高分),已给出函数的首部,请完成函数。 fun(STU a[],STU *s) { int i, max = a[0]. s, j=0; for (i=1; i

1 2 3 4 5 6 7 8 9 交换后: 3 2 1 4 5 6 9 8 7 第1处void fun (int t [] [N], int n) 第2处for (i=0; ia [mid]) 3 程序设计 假定输入的字符串中只包含字母和*号,请编写函数fun,它的的功能是:除了尾部的*号之外,将字符串中其他*全部删除。形参p已指向字符串中最后一个字母。在编写函数时,不得使用C语言提供的字符串函数。 void fun (char *a,char *p) { char *q=a; int j=0; while (*q&&q

数据库上机题目

上机时间7-18周周四上午3、4节 实验第一部分数据库操作 一:熟悉ACCESS环境(不用提交) 下面的实验要在七周内完成 实验1 建立学生、课程及成绩表,录入部分数据,并设计验证实体、参照及用户自定义完整性。 实验第二部分SQL语句VB数据库访问技术 二:SQL语句及VB数据库访问技术(要提交) 下面的SQL语句要求在“学生成绩管理”数据库进行测试。 下面的实验要在八至十二周内完成,要求提交纸质实验报告,实验报告包括:实验题目、SQL语句及查询结果的截图(查询的名称为自己的学号加姓名)。 【实验2_1】查询学生基本信息表中的所有信息。 SQL语句如下: 【实验2_2】在学生基本信息表中查询学生的学号、姓名、性别和族别信息。 SQL语句如下: 【实验2_3】从学生基本信息表中查询学生由哪些民族构成。 学生的族别有多行重复,要快速查询学生的民族构成,实际上就是对相同值的族别只需要显示一行,可使用DISTINCT关键字实现。 【实验2_4】从成绩表中查询学生成绩。 SQL语句如下: 【实验2_5】从相关表中查询每一位学生的学号、姓名、课程名称、成绩。 【实验2_6】在课程信息表中查找“Delphi程序设计”课程的任课老师。 【实验2_7】查询少数民族学生的基本情况。 【实验2_8】检索1985年1月1日以后出生的女生基本信息。 【实验2_9】查询每位同学的课程门数、总成绩、平均成绩。 【实验2_10】从学生基本信息表中统计各民族学生人数。 【实验2_11】从学生基本信息表中统计汉族学生的人数。 【实验2_12】显示平均成绩大于等于80分以上的学生情况。

【实验2_13】查询学生成绩并将显示的结果按成绩升序排序。 SQL语句如下: 【实验2_14】查询1985年出生的学生基本信息。 【实验2_15】查询不及格学生成绩信息。 查询不及格学生成绩信息,也就是查询0—59之间的学生成绩,可用BETWEEN关键字表示为:WHERE 成绩BETWEEN 0 AND 59。 【实验2_16】查询课程编号为002、003、007的课程编号、课程名称、任课教师和上课时间。 【实验2_17】检索所有姓刘的学生基本信息。 【实验2_18】检索包含“技术”两字的课程信息。 【实验2_19】查询第2 个字为“丽”的学生信息。 【实验2_20】查询课程信息表中教师未定的课程信息。 【实验2_21】统计成绩表中各门课程的学生人数、总成绩、平均成绩。 【实验2_22】检索单科成绩高于全班平均分的学生成绩信息。 【实验2_23】使用左外连接检索学生成绩信息(学号,姓名,课程名称)。 【实验2_24】使用右外连接检索学生成绩信息(学号,姓名,课程名称)。 【实验2_25】查找同名同姓的学生信息。 【实验2_26】在VB中设计针对“课程信息表”的基本编辑窗体,需要附运行界面及源程序代码。 实验第三部分数据库应用系统开发 数据库应用系统开发作为本课程课程设计考查内容,需要在18周之前提交纸质课程设计报告(主要是系统开发侧重于实施环节的报告)及数据库应用系统。系统开发可以两人(不能超过两人)一组,系统名称可自行拟定。

上机题

一、基本操作题 在考生文件夹下,存在一个数据库文件samp1.mdb、一个Excel 文件tScore.xls和一个图像文件photo.bmp。在数据库文件中已经建立了一个表对象tStud。试按以下要求完成各种操作。 1.设置ID字段为主键;并设置ID字段的相应属性,使该字段在 数据图视图中的显示标题为“学号” 2.将“性别”字段的默认值属性设置为“男”,“入校时间”字段 的格式属性设置为“长日期”。 3.设置“入校时间”字段的有效性规则和有效性文本。有效性规 则为:输入的入校时间必须为9月;有效性文本内容为:输入的月份有误,请重新输入。 4.将学号为20041002学生的“照片”字段值设置为考生文件夹 下的photo.bmp图像文件(要求使用“由文件创建”方式) 5.为“政治面貌”字段创建查阅列表,列表中显示“团员”、“党 员”、和“其他”3个值。(提示:将该字段的数据类型设置为“查阅向导”)。 6.将考生文件夹下的tScore.xls文件导入到samp1.mdb数据库文 件中,表名不变,主键为表中的ID字段。 第一套

一、基本操作题 考生文件夹下存在一个数据库文件“samp1.mdb”,里面已经设计好表对象“tStud”。请按照以下要求,完成对表的修改: (1)设置数据表显示的字体大小为14、行高为18; (2)设置“简历”字段的设计说明为“自上大学起的简历信息”; (3)将“入校时间”字段的显示设置为“××月××日××××”形式; 注意:要求月日为两位显示、年四位显示,如“12月15日2005”。 (4)将学号为“20011002”学生的“照片”字段数据设置成考生文件夹下的“photo.bmp”图像文件; (5)将冻结的"姓名"字段解冻; (6)完成上述操作后,将“备注”字段删除; 第三套 一、基本操作题 考生文件夹下,“samp1.mdb”数据库文件中已建立表对象“tEmp”。试按以下操作要求,完成对表“tEmp”的编辑修改和操作:(1)将“编号”字段改名为“工号”,并设置为主键; (2)设置“年龄”字段的有效性规则为:年龄大于等于17; (3)设置“聘用时间”字段的默认值为:2005-8-2; (4)删除表结构中的“简历”字段; (5)将考生文件夹下“samp0.mdb”数据库文件中的表对象

数据库上机考试试题及答案

1下列说法中正确的是:( D ) A 、 SQL 中局部变量可以不声明就使用 B 、 SQL 中全局变量必须先声明再使用 C 、 SQL 中所有变量都必须先声明后使用 D 、 SQL 中只有局部变量先声明后使用;全局变量是由系统提供的用户不能自己建立。 2.哪个关键字用于测试跟随的子查询中的行是否存在( B )。 A.MOV B.EXISTS C.UNION D.HAVING 3 .下列哪些语句用于创建存储过程( A )? A、CREATE PROCEDURE B、CREATE TABLE C、DROP PROCEDURE D、其他 5.在SQL中,SELECT语句的“SELECT DISTINCT”表示查询结果中 ( C )。 A.属性名都不相同 B.去掉了重复的列 C.行都不相同 D.属性值都不相同 语言集数据查询、数据操作、数据定义和数据控制功能于一体,语句INSERT、DELETE、UPDATA实现下列哪类功___A_____。 A. 数据查询 B. 数据操纵 C. 数据定义 D. 数据控制 Server 2000 采用的身份验证模式有( D )。 (A)仅Windows身份验证模式 (B)仅SQL Server身份验证模式 (C)仅混合模式 (D)Windows身份验证模式和混合模式 Server 2000 企业版可以安装在操作系统上。( C ) (A)Microsoft Windows 98 (B)Microsoft Windows 2000 Professional (C)Microsoft Windows 2000 Server (D)Microsoft Windows XP Server是一个( C )的数据库系统。 (A)网状型(B)层次型 (C)关系型(D)以上都不是 语言中,删除一个视图的命令是( B )。 A. DELETE B. DROP C. CLEAR D. REMOVE 语言中,删除记录的命令是( A )。

上机试题3及答案.docx

数据库上机练习3 一、 建立数据库TGDB ; 二、 为描述作者向期刊的投稿情况,建立了三张表:作者表、期刊表和投稿表。期刊表 用于描述期刊的基木信息,作者表用于描述作者的基木信息,投稿表用于描述作者向期刊的 投稿情况。在查询分析器中写出创建这三张表的语句。三张表的结构如下: 作者表(ZZB ) 作者号(zzh ) 普通字符编码定长字符型,长度为4,主码; 作者名(zzm ) 普通字符编码可变长字符型,最多5个汉字,取值不重复。 2. 期刊表(QKB ) 期刊号(qkh ) 普通字符编码定长字符型,长度为4,主码; 期刊名(qkm ) 普通字符编码可变长字符型,最大长度为20,非空; 类别(lb ) (说明:“是”表示此期 刊为核心期刊,“否”表示此期刊为非核心期刊)。 版面费(bmf ) 整型。 普通字符编码定长字符型,长度为4,非空; 普通字符编码定长字 符型,长度为4,非空; 小日期时间型,非空,默认值为系统当前时间; 普通字符编码定长字符型,长度为50; 普通字符编码定长字符型,长度为6,取值范围为{通过,未通过}, 其屮,主码为(作者号,期刊号,投稿日期), “作者号”为引用作者表的“作者号”的外 码; “期刊号”为引用期刊表的''期刊号”的 外码。 三、运行C:\exam.exe 程序解压缩数据文件(可解压到任何地方),解压缩的密码为 “dbok”。稠 SQL Server 的DTS 工具,将“期刊表.txt”文件中的数据导入到“期刊表” 中,将解压后的“作者与投稿表.xls”文件中的数据分别导入到“作者表”和“投稿表” 中。 四、利用第二题的三张表,在杳询分析器屮写出实现如下要求的SQL 语句(注:要求 下述语句均使用一条SQL 语句完成) 1. 杳询2006年以后(包括2006年)的投稿情况,列出作者名、期刊名、文章名称和投 稿口期。 2. 杳询姓哪个姓的作考最多,列出这个姓氏和姓这个姓氏的作者人数,包含并列的情况。 3. 查询作者“杨伍华”没有投过稿的核心期刊的名称。 4. 杏询投稿次数超过2次(包括2次)且版面费总金额大于100()的期刊的投稿情况,显 示作者号,期刊号,审稿通过总次数,版面费总金额(说明:只有审稿结果为“通普通字符编码定长字符型,长度为2,取值为“是”或“否” 3.投稿表(TGB ) 作者号(zzh ) 期 刊号(qkh ) 投稿日期(tgrq ) 文章名称 (wzmc ) 审稿结果 (sgjg ) 默认值为“未 通过”。

数据库sql查询语句上机练习1_习题_结果(单世民)

习题1 请根据给出的数据库表结构来回答相应问题: DEPT (DEPTNO INT, DNAME VARCHAR(14),LOC VARCHAR(13)); EMP (EMPNO INT,ENAME VARCHAR(10), JOB VARCHAR(9), MGR INT, HIREDATE DATE, SAL FLOAT, COMM FLOAT, DEPTNO INT); BONUS (ENAME VARCHAR(10), JOB VARCHAR(9), SAL INT, COMM INT); SALGRADE ( GRADE INT, LOSAL INT, HISAL INT); 其中表中包含如下数据: DEPT表: EMP表: SALGRADE表:

BONUS表: 无数据 根据上面描述完成下面问题: (注意:注意保存脚本,尤其是DDL和DML,以便进行数据还原) DDL 1. 写出上述表的建表语句。此外,在DEPT上创 建名为”PK_DEPT”的主键约束,在EMP表上 创建名为”PK_EMP”的主键约束以及指向表 DEPT的外键约束”FK_DEPTNO”。 命令: Create table DEPT (DEPTNO INT NOT NULL,DNAME VARCHAR(14),LOC VARCHAR(13)); Alter table DEPT add constraint PK_DEPT PRIMARY KEY (DEPTNO); create table EMP(EMPNO INT NOT NULL,ENAME VARCHAR(10),JOB VARCHAR(9),MGR INT,HIREDATE DATE, SAL FLOAT,COMM FLOAT,DEPTNO INT); alter table EMP add constraint PK_EMP PRIMARY KEY (EMPNO); alter table EMP add constraint FK_DEPTNO foreign key(DEPTNO) references DEPT(DEPTNO);

计算机考试二级C语言上机试题下[23]

计算机考试二级C语言上机试题下[23] 第 53套 试题说明 *********************************** 第一题(30分) 给定程序中,函数fun的功能是将不带头结点的单向链表逆置。即若原链表中 从头至尾结点数据域依次为:2、4、6、8、10,逆置后,从头至尾结点数据域依次为:10、8、6、4、2。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结 果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! *********************************** 第二题(30分) 给定程序MODI1.C中函数fun的功能是: 将s所指字符串中位于奇数位置的字符或ASCII码为偶数的字符放入t所指数组中(规定第一个字符放在第0位中)。 例如, 字符串中的数据为: AABBCCDDEEFF, 则输出应当是:ABBCDDEFF。 请改正函数fun中指定部位的错误, 使它能得出正确的结果。 注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构! *********************************** 第三题(40分) 请编写函数fun, 函数的功能是: 将M行N列的二维数组中的数据, 按列的顺序依次放到一维数组中。 例如, 二维数组中的数据为: 33 33 33 33 44 44 44 44

55 55 55 55 则一维数组中的内容应是: 33 44 55 33 44 55 33 44 55 33 44 55。 注意:部分源程序在文件PROG1.C中。 请勿改动主函数main和其它函数中的任何内容, 仅在函数fun的花括号中填入你编写的若干语句。

全国计算机二级C语言上机考试题库(可直接打印)

2012年9月全国计算机考试上机题库100套 第01套: 给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。 例如,输入一个数:27638496,新的数:为739。请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! 给定源程序: #include void fun(unsigned long *n) { unsigned long x=0, i; int t; i=1; while(*n) { t=*n % __1__; if(t%2!= __2__) { x=x+t*i; i=i*10; } *n =*n /10; } *n=__3__; } main() { unsigned long n=-1; while(n>99999999||n<0) { printf("Please input(0 double fun ( int n ) { double result = 1.0 ; if n = = 0 return 1.0 ; while( n >1 && n < 170 ) result *= n-- return result ; } main ( ) { int n ; printf("Input N:") ; scanf("%d", &n) ; printf("\n\n%d! =%lf\n\n", n, fun(n)) ; } 解题思路: 第一处:条件语句书写格式错误,应改为:if (n==0)。 第二处:语句后缺少分号。 *************************************************** 请编写一个函数fun,它的功能是:将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。例如,若输入字符串"-1234",则函数把它转换为整数值-1234。函数fun中给出的语句仅供参考。 注意: 部分源程序存在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 给定源程序: #include #include long fun ( char *p) {int i, len, t; /* len为串长,t为正负标识*/ long x=0; len=strlen(p); if(p[0]=='-') { t=-1; len--; p++; } else t=1; /* 以下完成数字字符串转换为一个数字*/ return x*t; } main() /* 主函数*/ { char s[6]; long n; printf("Enter a string:\n") ; gets(s); n = fun(s); printf("%ld\n",n); NONO ( ); } NONO ( ) {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/ FILE *fp, *wf ; int i ; char s[20] ; long n ; fp = fopen("c:\\test\\in.dat","r") ; wf = fopen("c:\\test\\out.dat","w") ; for(i = 0 ; i < 10 ; i++) { fscanf(fp, "%s", s) ; n = fun(s); fprintf(wf, "%ld\n", n) ; } fclose(fp) ; fclose(wf) ; } 解题思路:本题是将一个数字字符串转换为一个整数。 参考答案: #include #include long fun ( char *p) { int i, len, t; /* len为串长,t为正负标识*/ long x=0; len=strlen(p); if(p[0]=='-') { t=-1; len--; p++; } else t=1; /* 以下完成数字字符串转换为一个数字*/ while(*p) x = x*10-48+(*p++); return x*t; } main() /* 主函数*/ { char s[6]; long n; printf("Enter a string:\n") ; gets(s); n = fun(s); printf("%ld\n",n); NONO ( ); } NONO ( ) {/* 本函数用于打开文件,输入数据,调用函数,输出数据, 关闭文件。*/ FILE *fp, *wf ; int i ; char s[20] ; long n ; fp = fopen("c:\\test\\in.dat","r") ; wf = fopen("c:\\test\\out.dat","w") ; for(i = 0 ; i < 10 ; i++) { fscanf(fp, "%s", s) ; n = fun(s); fprintf(wf, "%ld\n", n) ; } fclose(fp) ; fclose(wf) ; } 注意:由于NONO( )这个函数是改卷人用的,与考生没有什 么关系,故下面从第2套试题开始均省略NONO( ) ※※※※※※※※※※※※※※※※※※※※※※※※※ 第02套: 给定程序中,函数fun的功能是将形参给定的字符串、整数、 浮点数写到文本文件中,再用字符方式从此文本文件中逐 个读入并显示在终端屏幕上。请在程序的下划线处填入正 确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! 给定源程序: #include void fun(char *s, int a, double f) { __1__ fp; char ch; fp = fopen("file1.txt", "w"); fprintf(fp, "%s %d %f\n", s, a, f); fclose(fp); fp = fopen("file1.txt", "r"); printf("\nThe result :\n\n"); ch = fgetc(fp); while (!feof(__2__)) { putchar(__3__); ch = fgetc(fp); } putchar('\n'); fclose(fp); } main() { char a[10]="Hello!"; int b=12345; double c= 98.76; fun(a,b,c); } 解题思路: 本题是考察先把给定的数据写入到文本文件中,再从该文件 读出并显示在屏幕上。 第一处:定义文本文件类型变量,所以应填:FILE *。 第二处:判断文件是否结束,所以应填:fp。 第三处:显示读出的字符,所以应填:ch。 *************************************************** 给定程序MODI1.C中函数fun的功能是: 依次取出字符串中 所有数字字符, 形成新的字符串, 并取代原字符串。 请改正函数fun中指定部位的错误, 使它能得出正确的结果。 注意: 不要改动main函数, 不得增行或删行, 也不得更改程 序的结构! 给定源程序: #include void fun(char *s) { int i,j; for(i=0,j=0; s[i]!='\0'; i++) if(s[i]>='0' && s[i]<='9') s[j]=s[i]; s[j]="\0"; } main() { char item[80]; printf("\nEnter a string : ");gets(item); printf("\n\nThe string is : \"%s\"\n",item); fun(item); printf("\n\nThe string of changing is : \"%s\"\n",item ); } 解题思路: 第一处: 要求是取出原字符串中所有数字字符组成一个新的 字符串,程序中是使用变量j 来控制新字符串的位置,所以应改为:s[j++]=s[i];。 第二处: 置新字符串的结束符,所以应改为:s[j]='\0';. *************************************************** 请编写函数fun, 函数的功能是: 将M行N列的二维数组中的 字符数据, 按列的 顺序依次放到一个字符串中。 例如, 二维数组中的数据为: W W W W S S S S H H H H 则字符串中的内容应是: WSHWSHWSH。 注意:部分源程序在文件PROG1.C中。 请勿改动主函数main和其它函数中的任何内容, 仅在函数 fun的花括号中填入 你编写的若干语句。 给定源程序: #include #define M 3 #define N 4 void fun(char s[][N], char *b) { int i,j,n=0; for(i=0; i < N;i++) /* 请填写相应语句完成其功能*/ { } b[n]='\0'; } main() { char a[100],w[M][N]={{'W','W','W','W'},{'S','S','S','S'},{'H','H','H','H' }}; int i,j; printf("The matrix:\n"); for(i=0; i #define N 5 typedef struct student { long sno; char name[10]; float score[3]; } STU; void fun(char *filename, STU n) { FILE *fp; fp = fopen(__1__, "rb+"); fseek(__2__, -1L*sizeof(STU), SEEK_END); fwrite(&n, sizeof(STU), 1, __3__); fclose(fp); } main() { STU t[N]={ {10001,"MaChao", 91, 92, 77}, {10002,"CaoKai", 75, 60, 88}, {10003,"LiSi", 85, 70, 78}, {10004,"FangFang", 90, 82, 87}, {10005,"ZhangSan", 95, 80, 88}}; STU n={10006,"ZhaoSi", 55, 70, 68}, ss[N]; int i,j; FILE *fp; fp = fopen("student.dat", "wb"); fwrite(t, sizeof(STU), N, fp); fclose(fp); fp = fopen("student.dat", "rb"); fread(ss, sizeof(STU), N, fp); fclose(fp); printf("\nThe original data :\n\n"); for (j=0; j

相关文档
最新文档