
cddbc cbdcd bbadb ccdcd ccbcc acccd cdadb cbdbd
选择题
1. VFP中下列表达式中写法错误的是
A) 〃总分〃+[90]
B) 〃AB〃==〃AB〃
C) 〃总分〃+ 90
D) 〃x〃<>〃y〃
2 数据库文件工资DBF共有10条记录,当前记录号为3, 用SUM命令计算工资总和,如果不给出范围短句,那么命令
A) 计算后5条记录工资值之和
B) 计算后6条记录工资值之和
C) 只计算当前记录工资值
D) 计算全部记录工资值之和
3 要为当前表所有职工增加100元工资应该使用命令
A) CHANGE 工资 WITH 工资+100
B) REPLACE 工资 WITH 工资+100
C) CHANGE ALL工资 WITH工资+100
D) REPLACE ALL 工资 WITH 工资+100
4 文件CGEMNX是一个
A) 表单文件
B) 菜单文件
C) 项目文件
D) 报表文件
5 Visual FoxPro关系数据库管理系统能实现的3种基本关系运算是
A) 索引、排序、查找
B) 建库、录入、排序
C) 选择、投影、联接
D) 显示、统计、复制
6 使用数据库技术进行人事档案管理,是属于计算机的
A) 科学计算应用
B) 过程控制应用
C) 数据处理应用
D) 辅助工程应用
7 逻辑型字段的宽度固定为
A) 8
B) 1
C) 4
D) 10
8 当前表中有20条记录,当前记录号是5,Display next 3命令将
A) 显示当前记录
B) 显示第三条记录
C) 显示第6到第8条记录
D) 显示第5到第7条记录
9 备注型字段的宽度固定为
A) 8
B) 1
C) 4
D) 10
10执行 ?STR(10987,7,3)后,屏幕显示的是
A) 10987
B) 〃10987〃
C) 109870
D) 〃109870〃
11 在Visual FoxPro中,打开表命令是
A) OPEN TABLE<表名>
B) USE <表名>
C) USE TABLE<表名>
D) OPEN<表名>
12 假定系统日期是1998年12月20日,有如下命令:MJ=MOD(YEAR(DATE()),100)
执行该命令后,MJ的值是
A) 1998
B) 98
C) 981220
D) 1220
13 在以下四组函数运算中,结果相同的是
A) LEFT(〃Visual FoxPro〃,4)与SUBSTR(〃Visual FoxPro〃,1,4)
B) YEAR(DATE())与SUBSTR(DTOC(DATE()),7,2)
C) lEN(〃that 〃)与 lEN(〃that 〃)
D) 假定A=〃that 〃,B=〃is a menu〃,A-B与A+B
14 在VFP中,执行STORE DTOC(DATE()+10) TO B后,变量B的类型为
A) 日期型
B) 数据型
C) 备注型
D) 字符型
15 如果要创建一个3级数据分组报表,第1个分组表达式是"部门",第2个分组表达式是"性别",第3个分组表达式是"基本工资",则当前索引的索引关键字表达式应该是
A) 部门+性别+基本工资
B) 部门+性别+STR(基本工资)
C) 性别+部门+STR(基本工资)
D) STR(基本工资)+性别+部门
16 数据表文件CJDBF已经打开,共有10条记录,按关键字XM排序,执行命令SORT ON XM TO CJ后,屏幕将显示
A) 10条记录排序完成
B) CJDBF已存在,覆盖它吗(Y/N)
C) 文件在使用
D) 出错信息
17 物理删除记录可用两条命令分两步来完成,这两个命令分别为
A) PACK和ZAP
B) PACK和RECALL
C) DELETE和PACK
D) DELETE和RECALL
18 在VFP的几种循环语句中,当循环次数为常数时,应选用的语句是
A) DO WHILE
B) SCAN
C) LOOP
D) FOR
19 关于数据库表和自由表,下列说法正确的是
A) 数据库表可以转换为自由表,反之不能
B) 自由表可以转换为数据库表,反之不能
C) 两者可以相互转换
D) 两者不能相互转换
20 视图设计器中比查询设计器多出的选项卡是
A) 字段
B) 排序依据
C) 联接
D) 更新条件
选择题
1 在FoxPro数据库中的常量的类型种类是
A) 4
B) 5
C) 6
D) 3
2 执行命令STORE 〃31416〃 TO TEST
TYPE(〃TEST〃)
其结果为
A) D
B) L
C) C
D) N
3 下列叙述正确的是
A) INPUT语句只能接收字符串
B) ACCEPT命令只能接收字符串
C) ACCEPT语句可以接收任意类型的VFP表达式
D) WAIT只能接收一个字符,而且必须按ENTER键
4 在使用项目管理器时,如果要移去一个文件,在提示的框中选择"Remove(移去)"按钮,系统将会把所选择的文件移走。选择"Delete(删除)"按钮,这系统将会把该文件
A) 仅仅从项目中移走
B) 仅仅从项目中移走,磁盘上的文件未被删除
C) 不仅从项目中移走,磁盘上的文件也被删除
D) 只是不保留在原来的目录中
5 要使文件菜单项用"F"作为访问快捷键,定义该菜单标题可用
A) 文件(F)
B) 文件(<\F)
C) 文件(\<F)
D) 文件(/\F)
6 用户设计菜单系统时,系统默认菜单系统位置
A) 替换原有菜单系统
B) 追加在原有的菜单系统后面
C) 插入到原菜单系统的前面
D) 与原菜单系统无关
7 打开一个数据表文件的同时打开以"姓名"为关键字的单一索引文件,要求查找姓名为"张伟"的教师,应使用命令
A) GO张伟
B) LOCATE张伟
C) FIND张伟
D) SEEK张伟
8 在报表设计中打印每条记录的带区是
A) 标题
B) 页标头
C) 细节
D) 总结
9 BOF()是测试函数,当正使用的数据表文件的记录指针已达头部,其函数值为
A) 0
B) 1
C) T
D) F
10 数据库文件有30条记录,当前记录是20,执行命令LIST NEXT 5后,所显示记录号是
A)21~25
B)21~26
C)20~25
D)20~24
11 EOF()是测试函数,当正使用的数据表文件的记录指针已达尾部,其函数值为
A) 0
B) 1
C) T
D) F
12 统计在校生党员数的正确 *** 作是
A) SUM FOR 党员否
B) COUNT TO 党员否=T
C) SUM 党员否
D) COUNT FOR 党员否
13 函数LEN(SPACE(20)-SPACE(15))的返回值是
A) 35
B) 19
C) 5
D) 错误信息
14 关于索引的叙述,下列选项不正确的是
A) VFP支持两种索引文件:复合索引文件和单索引文件
B) 实现索引查询必须满足以下条件:打开数据库;打开索引文件;确定控制索引文件;对于复合索引文件还需确定控制索引
C) 打开和关闭索引文件均使可用SET INDEX TO命令
D) 索引文件不会随着库文件的关闭而关闭
15 当前目录下有AADBF、BBDBF,其中数据表文件AADBF已经打开,共有10条记录,按关键字"学号"排序,执行命令SORT ON 学号 TO BB 后,屏幕将显示
A)10条记录排序完成
B)BBDBF已存在,覆盖它吗(Y/N)
C)文件在使用
D)出错信息
16 把当前数据库文件中"性别"字段为"女"的值全部清除,但仍保留该字段与其他各字段内容,应当使用命令
A) MODIFY STRUCTURE
B) DELETE
C) RELACE
D) ZAP
17 SUBSTR(〃ABCDEF〃,3,2)的结果是
A) AB
B) CD
C) FE
D) CB
18 下列命令中,不能输入字符型数据的命令是
A) ACCEPT
B) WAIT
C) INPUT
D) SAY
19 VF60数据库系统是
A)网络型
B)关系型
C)层次型
D)链状型
20 设VFP的程序中有P1PRG, P2PRG ,P3PRG三层程序嵌套,下面叙述正确的是
A)在P1中用!RUN P2PRG语句可以调用P2子程序
B)在P2中用RUN P3PRG语句可以调用P3子程序
C)在P3中用RETURN语句可以返回P1子程序
D)在P3中用RETURN TO MASTER语句可以返回P1子程序
2006年计算机等级考试三级C语言上机题附答案
☆题目1
请编写一个函数jsValue(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k个素数存入数组xx传回。
最后调用函数writeDat()读取10组数据,分别得出结果且把结果输出到文件outdat中。
部分源程序存在文件prog1c中。
例如:若输入17 5 则应输出:19,23,29,31,37。
请勿改动主函数main()和写函数writeDat()的内容。
#include
#include
void readwriteDat();
int isP(int m)
{
int i;
for(i=2;i if(m % i==0)return 0;
return 1;
}
void num(int m,int k,int xx[])
{ int s=0;
for(m=m+1;k>0;m++)
if(isP(m)) { xx[s++]=m; k--;}
}
main()
{
int m,n,xx[1000];
clrscr();
printf("\nPlease enter two integers:");
scanf("%d%d",&m,&n);
num(m,n,xx);
for(m=0;m printf("%d ",xx[m]);
printf("\n");
readwriteDat();
}
void readwriteDat()
{
int m,n,xx[1000], i;
FILE rf,wf;
rf=fopen("indat","r");
wf=fopen("outdat","w");
for(i=0;i<10;i++){
fscanf(rf,"%d %d",&m,&n);
num(m,n,xx);
for(m=0;m }
fclose(rf);
fclose(wf);
}
☆ 题目2
已知数据文件INDAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:如果四位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的个数cnt,并把这些四位数按从大到小的顺序存入数组b中。最后main( )函数调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUTDAT文件中。
注意:部分源程序存在文件prog1c中。
程序中已定义数组:a[200],b[200],已定义变量:cnt
请勿改动数据文件INDAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。
#include
#define MAX 200
int a[MAX], b[MAX], cnt = 0 ;
void jsVal()
{ int i,j,qw,bw,sw,gw;
for(i=0;i { qw=a[i]/1000; bw=a[i]/100%10;
sw=a[i]%100/10; gw=a[i]%10;
if(qw&&qw%2==0&&bw%2==0&&sw%2==0&&gw%2==0) b[cnt++]=a[i];
}
for(i=0;i for(j=i+1;j if(b[i]}
void readDat()
{
int i ;
FILE fp ;
fp = fopen("indat", "r") ;
for(i = 0 ; i < MAX ; i++) fscanf(fp, "%d", &a[i]) ;
fclose(fp) ;
}
void main()
{
int i ;
readDat() ;
jsVal() ;
printf("满足条件的数=%d\n", cnt) ;
for(i = 0 ; i < cnt ; i++) printf("%d ", b[i]) ;
printf("\n") ;
writeDat() ;
}
writeDat()
{
FILE fp ;
int i ;
fp = fopen("outdat", "w") ;
fprintf(fp, "%d\n", cnt) ;
for(i = 0 ; i < cnt ; i++) fprintf(fp, "%d\n", b[i]) ;
fclose(fp) ;
}
★题目3
函数ReadDat( )实现从文件INDAT中读取一篇英文文章存入到字符串数组xx中;请编制函数StrOR( ),其函数的功能是:以行为单位依次把字符串中所有小写字母o左边的字符串内容移到该串的右边存放,然后把小写字母o删除,余下的字符串内容移到已处理字符串的左边存放,之后把已处理的字符串仍按行重新存入字符串数组xx中。最后main()函数调用函数WriteDat()把结果xx输出到文件OUT5DAT中。
原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。
注意:部分源程序存放在文件prog1c中。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
#include
#include
#include
char xx[50][80] ;
int maxline = 0 ; / 文章的总行数 /
int ReadDat(void) ;
void WriteDat(void) ;
void StrOR(void)
{int i,righto,j,s,k;
char tem[80];
for(i=0;ifor(j=strlen(xx[i])-1;j>=0;j--)
{ k=0;
memset(tem,0,80);
if(xx[i][j]=='o')
{righto=j;
for(s=righto+1;stem[k++]=xx[i][s];
for(s=0;s if(xx[i][s]!='o')
tem[k++]=xx[i][s];
strcpy(xx[i],tem);
}
else continue;
}
}
void main()
{
clrscr() ;
if(ReadDat()) {
printf("数据文件INDAT不能打开!\n\007") ;
return ;
}
StrOR() ;
WriteDat() ;
}
int ReadDat(void)
{
FILE fp ;
int i = 0 ;
char p ;
if((fp = fopen("INDAT", "r")) == NULL) return 1 ;
while(fgets(xx[i], 80, fp) != NULL) {
p = strchr(xx[i], '\n') ;
if(p) p = 0 ;
i++ ;
}
maxline = i ;
fclose(fp) ;
return 0 ;
}
void WriteDat(void)
{
FILE fp ;
int i ;
clrscr() ;
fp = fopen("OUT5DAT", "w") ;
for(i = 0 ; i < maxline ; i++) {
printf("%s\n", xx[i]) ;
fprintf(fp, "%s\n", xx[i]) ;
}
fclose(fp) ;
}
★题目4
函数ReadDat()实现从文件INDAT中读取一篇英文文章存入到字符串数组xx中,请编制函数StrOL(),其函数的功能是:以行为单位对行中以空格或标点符号为分隔的所有单词进行倒排。最后把已处理的字符串(应不含标点符号)仍按行重新存入字符串数组xx中,最后调用函数writeDat()把结果xx输出到文件OUT6DAT中。
例如:原文:You He Me
I am a student
结果:Me He You
student a am I
原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。
部分源程序存在文件prog1c中。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数writeDat()的内容。
#include
#include
#include
#include
char xx[50][80];
int maxline=0;/文章的总行数/
int ReadDat(void);
void WriteDat(void);
void StrOL(void)
{ int i,j,k,s,m,strl;
char str[80];
for(i=0;i { strl=strlen(xx[i]);
memset(str,0,80);
s=k=0;
for(j=strl-1;j>=0;j--)
{ if(isalpha(xx[i][j])) k++;
else { for(m=1;m<=k;m++)
str[s++]=xx[i][j+m];
k=0;
}
if(!isalpha(xx[i][j]))
str[s++]=' ';
}
for(m=1;m<=k;m++)
str[s++]=xx[i][j+m];
str[s]='\0';
strcpy(xx[i],str); }
}
void main()
{
clrscr();
if(ReadDat()){
printf("数据文件INDAT不能打开!\n\007");
return;
}
StrOL();
WriteDat();
}
int ReadDat(void)
{
FILE fp;
int i=0;
char p;
if((fp=fopen("INDAT","r"))==NULL) return 1;
while(fgets(xx[i],80,fp)!=NULL){
p=strchr(xx[i],'\n');
if(p)p=0;
i++;
}
maxline=i;
fclose(fp);
return 0;
}
void WriteDat(void)
{
FILE fp;
int i;
clrscr();
fp=fopen("OUT6DAT","w");
for(i=0;i printf("%s\n",xx[i]);
fprintf(fp,"%s\n",xx[i]);
}
fclose(fp);
}
☆ 题目5 在文件indat中有200个正整数,且每个数均在1000至9999之间。函数ReadDat()读取这200个数存放到数组aa中。请编制函数jsSort(),其函数的功能是:要求按每个数的后三位的大小进行升序排列,然后取出满足此条件的前10个数依次存入数组bb中,如果后三位的数值相等,则按原先的数值进行降序排列。最后调用函数WriteDat()把结果bb输出到文件outdat中。
例:处理前 6012 5099 9012 7025 8088
处理后 9012 6012 7025 8088 5099
部分源程序存在文件prog1c中。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
#include
#include
#include
int aa[200],bb[10];
void jsSort()
{
int i,j,data;
for(i=0;i<199;i++)
for(j=i+1;j<200;j++) if(aa[i]%1000>aa[j]%1000||aa[i]%1000==aa[j]%1000&&aa[i] for(i=0;i<10;i++)
bb[i]=aa[i];
}
void main()
{
readDat();
jsSort();
writeDat();
}
readDat()
{
FILE in;
int i;
in=fopen("indat","r");
for(i=0; i<200; i++) fscanf(in,"%d,",&aa[i]);
fclose(in);
}
writeDat()
{
FILE out;
int i;
clrscr();
out=fopen("outdat","w");
for(i=0; i<10; i++){
printf(" %d",bb[i]);
fprintf(out,"%d\n",bb[i]);
}
fclose(out);
}
☆题目6
在文件indat中有200个正整数,且每个数均在1000至9999之间。函数ReadDat()读取这200个数存放到数组aa中。请编制函数jsSort(),其函数的功能是:要求按每个数的后三位的大小进行降序排列,然后取出满足此条件的前10个数依次存入数组b中,如果后三位的数值相等,则按原先的数值进行升序排列。最后调用函数WriteDat()把结果bb输出到文件outdat中。
例:处理前 9012 5099 6012 7025 8088
处理后 5099 8088 7025 6012 9012
注意:部分源程序已给出。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
#include
#include
#include
int aa[200],bb[10];
void jsSort()
{
int i,j,data;
for(i=0;i<199;i++)
for(j=i+1;j<200;j++)
if(aa[i]%1000aa[j])
{data=aa[i];aa[i]=aa[j];aa[j]=data;}
for(i=0;i<10;i++)
bb[i]=aa[i];
}
void main()
{
readDat();
jsSort();
writeDat();
system("pause");
}
readDat()
{
FILE in;
int i;
in=fopen("indat","r");
for(i=0; i<200; i++) fscanf(in,"%d,",&aa[i]);
fclose(in);
}
writeDat()
{
FILE out;
int i;
clrscr();
out=fopen("outdat","w");
for(i=0; i<10; i++){
printf("i=%d,%d\n",i+1,bb[i]);
fprintf(out,"%d\n",bb[i]);
}
fclose(out);
}
☆题目7
已知在文件INDAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。其中:金额=单价数量计算得出。函数ReadDat()是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按产品代码从大到小进行排列,若产品代码相同,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT6DAT中。
部分源程序存在文件prog1c中。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
#include
#include
#include
#include
#include
#define MAX 100
typedef struct{
char dm[5]; /产品代码/
char mc[11]; /产品名称/
int dj; /单价/
int sl; /数量/
long je; /金额/
}PRO;
PRO sell[MAX];
void ReadDat();
void WriteDat();
void SortDat()
{int i,j;
PRO xy;
for(i=0;i<99;i++)
for(j=i+1;j<100;j++)
if(strcmp(sell[i]dm,sell[j]dm)<0||strcmp(sell[i]dm,sell[j]dm)==0&&sell[i]je {xy=sell[i]; sell [i]=sell[j]; sell[j]=xy;}
}
void main()
{
memset(sell,0,sizeof(sell));
ReadDat();
SortDat();
WriteDat();
}
void ReadDat()
{
FILE fp;
char str[80],ch[11];
int i;
fp=fopen("INDAT","r");
for(i=0;i<100;i++){
fgets(str,80,fp);
memcpy(sell[i]dm,str,4);
memcpy(sell[i]mc,str+4,10);
memcpy(ch,str+14,4);ch[4]=0;
sell[i]dj=atoi(ch);
memcpy(ch,str+18,5);ch[5]=0;
sell[i]sl=atoi(ch);
sell[i]je=(long)sell[i]djsell[i]sl;
}
fclose(fp);
}
void WriteDat(void)
{
FILE fp;
int i;
fp=fopen("OUT6DAT","w");
for(i=0;i<100;i++){
printf("%s %s %4d %5d %5d\n", sell[i]dm,sell[i]mc,sell[i]dj,sell[i]sl,sell[i]je);
fprintf(fp,"%s %s %4d %5d %5d\n", sell[i]dm,sell[i]mc,sell[i]dj,sell[i]sl,sell[i]je);
}
fclose(fp);
}
★题目8 函数ReadDat()实现从文件ENGIN中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS1DAT中。
替代关系:f(p)=p11 mod 256(p是数组中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果计算后f(p)值小于等于32或大于130,则该字符不变,否则将f(p)所对应的字符进行替代。(注意中间变量用无符号整型),部分源程序存在文件prog1c中。原始数据文件存放的格式是:每行的宽度均小于80个字符。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
#include
#include
#include
#include
unsigned char xx[50][80];
int maxline=0;/文章的总行数/
int ReadDat(void);
void WriteDat(void);
void encryptChar()
{ int i,j;
for(i=0;i for(j=0;j if(xx[i][j]11%256<=32||xx[i][j]11%256>130) continue;
else xx[i][j]=xx[i][j]11%256;
}
void main()
{
clrscr();
if(ReadDat()){
printf("数据文件ENGIN不能打开!\n\007");
return;
}
encryptChar();
WriteDat();
}
int ReadDat(void)
{
FILE fp;
int i=0;
unsigned char p;
if((fp=fopen("engin","r"))==NULL) return 1;
while(fgets(xx[i],80,fp)!=NULL){
p=strchr(xx[i],'\n');
if(p)p=0;
i++;
}
maxline=i;
fclose(fp);
return 0;
}
void WriteDat(void)
{
FILE fp;
int i;
fp=fopen("ps1dat","w");
for(i=0;i printf("%s\n",xx[i]);
fprintf(fp,"%s\n",xx[i]);
}
fclose(fp);
}
★☆题目9
函数ReadDat()实现从文件INDAT中读取一篇英文文章存入到字符串数组xx中,请编制函数SortCharD(),其函数的功能是:以行为单位对字符按从大到小的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数writeDat()把结果xx输出到文件OUT2DAT中。
例:原文:dAe,BfC
CCbbAA
结果:fedCBA
bbCCAA
原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。
部分源程序存在文件prog1c中。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数writeDat()的内容。
#include
#include
#include
char xx[50][80];
int maxline=0;/文章的总行数/
int ReadDat(void);
void WriteDat(void);
void SortCharD(void)
{int i,j,k,strl;
char ch;
for(i=0;i {strl=strlen(xx[i]);
for(j=0;j for(k=j+1;k if(xx[i][j] {ch=xx[i][j]; xx[i][j]=xx[i][k]; xx[i][k]=ch;}
}
}
void main()
{
clrscr();
if(ReadDat()){
printf("数据文件INDAT不能打开!\n\007");
return;
}
SortCharD();
WriteDat();
}
int ReadDat(void)
{
FILE fp;
int i=0;
char p;
if((fp=fopen("INDAT","r"))==NULL) return 1;
while(fgets(xx[i],80,fp)!=NULL){
p=strchr(xx[i],'\n');
if(p)p=0;
i++;
}
maxline=i;
fclose(fp);
return 0;
}
void WriteDat(void)
{
FILE fp;
int i;
fp=fopen("OUT2DAT","w");
for(i=0;i printf("%s\n",xx[i]);
fprintf(fp,"%s\n",xx[i]);
}
fclose(fp);
}
★☆题目10
函数ReadDat()实现从文件INDAT中读取一篇英文文章存入到字符串数组xx中,请编制函数ConvertCharA(),其函数的功能是:以行为单位把字符串中的所有小写字母改写成该字母的下一个字母,如果是字母z,则改写成字母a。大写字母仍为大写字母,小写字母仍为小写字母,其他字符不变。把已处理的字符串仍按行重新存入字符串数组xx中,最后调用函数writeDat()把结果xx输出到文件OUT1DAT中。
例:原文:AdbBcdza
abckLLhj
结果:AecBdeab
bcdlLLik
原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。
部分源程序存在文件prog1c中。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数writeDat()的内容。
#include
#include
#include
char xx[50][80];
int maxline=0;/文章的总行数/
int ReadDat(void);
void WriteDat(void);
void ConvertCharA(void)
{ int i,j;
for(i=0;i { for(j=0;j if(xx[i][j]=='z') xx[i][j]='a';
else if(xx[i][j]>='a'&&xx[i][j]<='y') xx[i][j]+=1;
}
}
void main()
{
clrscr();
if(ReadDat()){
printf("数据文件INDAT不能打开!\n\007");
return;
}
ConvertCharA();
WriteDat();
}
int ReadDat(void)
{
FILE fp;
int i=0;
char p;
if((fp=fopen("INDAT","r"))==NULL) return 1;
while(fgets(xx[i],80,fp)!=NULL){
p=strchr(xx[i],'\n');
if(p)p=0;
i++;
}
maxline=i;
fclose(fp);
return 0;
}
void WriteDat(void)
{
FILE fp;
int i;
clrscr();
fp=fopen("OUT1DAT","w");
for(i=0;i printf("%s\n",xx[i]);
fprintf(fp,"%s\n",xx[i]);
}
fclose(fp);
}
第三章
3import javautilScanner;
public class TestScanner3{
public static void main(String[] args){
Scanner s=new Scanner(Systemin);
Systemoutprint("请输入三角形的三条边:");
float a=snextFloat();
float b=snextFloat();
float c=snextFloat();
if((a!=0)&&(b!=0)&&(c!=0)&&(a+b>c&&Mathabs(a-b)<c))
Systemoutprintln("\t三条边构成三角形 ");
else
Systemoutprintln("\t三条边构不成三角形 ");
}
}
4import javautilScanner;
public class TestSwitch4{
public static void main(String args[]){
Scanner s=new Scanner(Systemin);
Systemoutprint("请输入两个整数:");
int a=snextInt();
int b=snextInt();
char c;
switch(1){
case 1: Systemoutprintln(" "+"="+a+"+"+b);
case 2: Systemoutprintln(" "+"="+a+"-"+b);
case 3: Systemoutprintln(" "+"="+a+""+b);
case 4: Systemoutprintln(" "+"="+a+"/"+b); break;
default: Systemoutprintln("输入错误: ");
}
}
}
5public class Sum5{
public static void main(String args[]){
int s=0,s1=0,s2=0;
for(int i=1;i<=3;i++)
{
if(i/2==0)
s1+=(-1)ii;
else
s2+=ii;
}
s=s1+s2;
Systemoutprintln("s的值是:"+s);
}
}
6public class Sum6{
public static void main(String args[]){
long t=0;
for(int i=1;i<=20;i++)
{ long s=1;
for(int j=1;j<=i;j++)
{
s=sj;
}
Systemoutprintln(i+"!的值是: \n"+s);
t=t+s;
}
Systemoutprintln("t的值是: "+t);
}
}
第四章
1public class Box{
public int length;
public int width;
public int height;
public Box(int length1,int width1,int height1)
{ length=length1;width=width1;height=height1;}
public int Volume()
{ int v;
v=lengthwidthheight;
return v;
}
public int Som()
{ int s;
s=2lengthwidth+2widthheight+2lengthheight;
return s;
}
public static void main(String[] args)
{ Box b;
b=new Box(20,10,5);
Systemoutprintln("长方体的长: "+blength);
Systemoutprintln("长方体的宽: "+bwidth);
Systemoutprintln("长方体的高: "+bheight);
Systemoutprintln("长方体的体积: "+ bVolume());
Systemoutprintln("长方体的表面积: "+ bSom());
}
}
2public class A {
private int data;
private String str;
public A(){
data = 0;
str = "";
}
public A(int data,String str){
thisdata = data;
thisstr = str;
}
public void add(int k,String s){
thisdata+=k;
thisstr+=s;
}
public void clear(){
thisdata = 0;
thisstr = "";
}
public String toString(){
String s = data+"";
s+=str;
return (s);
}
public static void main(String args[]){
A a = new A();
aadd(10,"Hello");
Systemoutprintln("data is:"+adata+" str is:"+astr);
Systemoutprintln(atoString());
aclear();
A b = new A(199,"nihao");
Systemoutprintln("data is:"+bdata+" str is:"+bstr);
Systemoutprintln(btoString());
badd(200, " dajiahao");Systemoutprintln("data is:"+bdata+" str is:"+bstr);
Systemoutprintln(btoString());
}
}
没有第五章
安徽大学C语言程序上机 *** 作答案
链接:> 提取码:xxpv
如果资源不正确,或者版本不正确,欢迎追问
这个其实很简单,可以这里不能附件。就像你传的这张,你把鼠标在G2这个单元格里点一下然后输入
=D2+E2+F2
然后回车,这个分数就出来了,然后把鼠标放在G2上,这个单元格的右下角会有一个+号,用鼠标点住,然后拉下来,一直拉到G11,放开鼠标,搞定,其它的也就是在不同的列使用排序就可以了。
9月25日 13:20 全国计算机等级考试二级笔试试卷
Visual Basic语言程序设计
(考试时间90分钟,满分100分)
2004年9月18日
一、选择题((1)—(20)每小题2分,(21)—(30)每小题3分,共70分)
下列各题 A) 、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
(1) 设窗体上有一个文本框,名称为text1,程序运行后,要求该文本框不能接受键盘输入,但能输出信息,以下属性设置正确的是:
A)text1maxlength=0 B)text1enabled=flase
C)text1visible=flase D)text1width=0
答案:B
(2) 以下能在窗体Form1的标题栏中显示“VisualBasic窗体"的语句是
A) Form1Name="VisualBasic窗体"
B) Form1title="VisualBasic窗体"
C) Form1Caption="VisualBasic窗体"
D) Form1Text="VisualBasic窗体”
答案:C
(3) 在窗体上画一个名称为Text1的文本框,然后画一个名称为HScroll1的滚动条,其Min和Max属性分别为0和100。程序运行后,如果移动滚动框,则在文本框中显示滚动条的当前值,如图所示:
以下能实现上述 *** 作的程序段是
A) Private Sub HScroll_Change()
Text1Text=HScroll1Value
End Sub
B) Private Sub HScroll_Click()
Text1Text=HScroll1Value
End Sub
C) Private Sub HScroll_Change()
Text1Text=HScrollCaption
D) Private Sub HScroll_Click()
Text1Text=HScrollCaption
End Sub
答案A
(4) 设菜单中有一个菜单项为"Open"。若要为该菜单命令设计访问键,即按下Alt及字母O时,能够执行"Open"命令,则在菜单编辑器中设置“Open"命令的方式是
A) 把Caption属性设置为&Open
B) 把Caption属性设置为O&pen
C) 把Name属性设置为&Open
D) 把Name属性设置为O&pen
答案A
(5) 在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程:
Private Sub Command1_Click()
x=InputBox("Input")
Select Case x
Case 1,3
Print "分支 1"
Case Is >4
Print "分支 2"
Case Else
Print "Else 分支 "
End Select
End Sub
程序运行后,如果在输入对话框中输入2,则窗体上显示的是
A) 分支1 B) 分支2 C) Else分支 D) 程序出错
答案C
(6) 以下关于MsgBox的叙述中,错误的是
A) MsgBox函数返回一个整数
B) 通过MsgBox函数可以设置信息框中图标和按钮的类型
C) MsgBox语句没有返回值
D) MsgBox函数的第一个参数是一个整数,该参数只能确定对话框中显示的按钮数量
答案D
(7)在窗体上画一个名称为Timer1的计时器控件,要求每隔05秒发生一次计时器事件,则以下正确的属性设置语句是
A)Timer1InterVal=05 B) Timer1Interval=5
C) TimerInterval=50 D) Timer1Interval=500
答案D
(8) 在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程:
Private Sub Command1_Click()
Static x As Integer
Cls
For i=1 To 2
y=y+x
x=x+2
Next
Print x,y
End Sub
程序运行后,连续三次单击Command1按钮后,窗体上显示的是
A) 4 2 B) 12 18 C) 12 30 D) 4 6
答案:B
(9) 以下关于多重窗体程序的叙述中,错误的是
A)用Hide方法不但可以隐藏窗体,而且能清除内存中的窗体
B)在多重窗体程序中,各窗体的菜单是彼此独立的
C)在多重窗体程序中,可以根据需要指定启动窗体
D)对于多重窗体程序中,而且单独保存每个窗体
答案:A
(10)以下关于文件的叙述中,错误的是
A)顺序文件中的记录一个接一个地顺序存放
B)随机文件中记录的长度是随机的
C)执行打开文件的命令后,自动生成一个文件指针
D)LOF函数返回给文件分配的字节数
答案B
(11) 以下叙述中错误的是
A)事件过程是响应特定事件的一段程序
B)不同的对象可以具有相同名称的方法
C)对象的方法是执行指定 *** 作的过程
D)对象事件的名称可以由编程者指定
答案D
(12) 以下合法的Visual Basic标识符是
A) ForLoop B) Const C) 9abc D) a#x
答案A
(13) 当一个复选框被选中时,它的Value属性的值是
A) 3 B) 2 C) 1 D) 0
答案C
(14) 表达式 5 Mod 3+3\52的值是
A) 0 B) 2 C)4 D) 6
答案B
(15) 设x=4,y=8,z=7,以下表达式的值是
x<y And (Not y>z) Or z<x
A) 1 B) -1 C) True D) False
答案D
(16) 在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程:
Private Sub Command1_Click()
a$="VisualBasic"
Print String(3,a$)
End Sub
程序运行后,单击命令按钮,在窗体上显示的内容是
A) VVV B) Vis C) sic D) 11
答案A
(17) 设有如下程序段:
x=2
For i=1 To 10 Step 2
x=x+i
Next
运行以上程序后,x的值是
A) 26 B) 27 C) 38 D) 57
答案B
(18) 以下叙述中错误的是
A) 在KeyPress事件过程中不能识别键盘的按下与释放
B) 在KeyPress事件过程中不能识别回车键
C) 在KeyDown和KeyUp事件过程中,将键盘输入的"A"和"a"视作相同的字母
D) 在KeyDown和KeyUp事件过程中,从大键盘上输入的"1"和从右侧小键盘上输入的"1"被视作不同的字符
答案B
(19) 执行如下两条语句,窗体上显示的是
a=98596
Print Format(a,"$00,0000")
A) 0,00986 B) $986 C) 986 D) $0,00986
答案D
(20)在窗体上画一个名称为CommandDialog1 的通用对话框,一个名称为Command1的命令按钮。然后编写如下事件过程:
Private Sub Command1_Click()
CommonDialog1FileName =""
CommonDialog1Filter="All file||(Doc)|Doc|(Txt)|Txt"
CommonDialog1FilterIndex=2
CommonDialog1Dialogtitle="VBTest"
CommonDialog1Action=1
End Sub
对于这个程序,以下叙述中错误的是
A) 该对话框被设置为“打开”对话框
B) 在该对话框中指定的默认文件名为空
C) 该对话框的标题为VBTest
D) 在该对话框中指定的默认文件类型为文本文件(Txt)
答案D
(21) 设一个工程由两个窗体组成,其名称分别为Form1和Form2,在Form1上有一个名称为Command1的命令按钮。窗体Form1的程序代码如下:
Private Sub Command1_Click()
Dim a As Integer
a=10
Call g(Form2,a)
End Sub
Private Sub g(f As Form,x As Integer)
y=IIf(x>10,100,-100)
f,Show
fCaption=y
End Sub
运行以上程序,正确的结果是
A) Form1的Caption属性值为100 B) Form2的Caption属性值为-100
C) Form1的Caption属性值为-100 D) Form2的Caption属性值为100
答案B
(22)在窗体上画一个名称为Command1的命令按钮,并编写如下程序:
Private Sub Command1_Click()
Dim x As Integer
Static y As Integer
x=10
y=5
Call f1(x,y)
Print x,y
End Sub
Private Sub f1(ByRef x1 As Integer, y1 As Integer)
x1=x1+2
y1=y1+2
End Sub
程序运行后,单击命令按钮,在窗体上显示的内容是
A) 10 5 B) 12 5 C) 10 7 D) 12 7
答案D
(23)设有如下程序
Option Base 1
Private Sub Command1_Click()
Dim a(10) As Integer
Dim n As Integer
n=InputBox("输入数据")
If n<10 Then
Call GetArray(a,n)
End If
End Sub
Private Sub GetArray(b() As Integer,n As Integer)
Dim c(10) As Integer
j=0
For i=1 To n
b(i)=CInt(Rnd()100)
If b(i)/2=b(i)\2 Then
j=j+1
c(j)=b(i)
End If
Next
Print j
End Sub
以下叙述中错误的是
A) 数组b中的偶数被保存在数组c中
B) 程序运行结束后,在窗体上显示的是c数组中元素的个数
C) GetArray过程的参数n是按值传送的
D) 如果输入的数据大于10,则窗体上不显示任何显示
答案C
(24)在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程:
Option Base 1
Private Sub Command1_Click()
Dim a
a= Array(1,2,3,4,5)
For i=1 To UBound(a)
a(i) = a(i)+i-1
Next
Print a(3)
End Sub
程序运行后,单击命令按钮,则在窗体上显示的内容是
A) 4 B) 5 C) 6 D)7
答案B
(25)阅读程序
Option Base 1
Private Sub Form_Click()
Dim arr,Sum
Sum = 0
arr = Array(1,3,5,7,9,11,13,15,17,19)
For i=1 To 10
If arr(i)/3 = arr(i)\3 Then
Sum =Sum+arr(i)
End If
Next i
Print Sum
End Sub
程序运行后,单击窗体,输入结果为
A)13 B)14 C)27 D) 15
答案C
(26)在窗体上画一个名称为File1的文件列表框,并编写如下程序:
Private Sub File1_DblClick()
x=Shell(File1FileName,1)
End Sub
以下关于该程序的叙述中,错误的是
A) x没有实际作用,因此可以将该语句写为:Call Shell(File1,FileName,1)
B)双击文件列表框中的文件,将触发该事件过程
C)要执行的文件的名字通过File1FileName指定
D)File1中显示的是当前驱动器、当前目录下的文件
答案A
(27) 在窗体上画一个名称为Label1、标题为“VisualBasic考试”的标签,两个名称分别为Command1和Command2、标题分别为“开始”和“停止”的命令按钮,然后画一个名称为Timer1的计时器控件,并把其Interval属性设置为500,如图所示。
编写如下程序:
Private Sub Form_Load()
Timer1Enabled=False
End Sub
Private Sub Command1_Click()
Timer1Enabled=True
End Sub
Private Sub Timer1_Timer()
If Label1Left<Width Then
Label1Left = Label1Left + 20
Else
Label1Left=0
End If
End Sub
程序运行后,单击“开始”按钮,标签在窗体中移动。
对于这个程序,以下叙述中错误的是
A) 标签的移动方向为自右向左
B)单击“停止”按钮后再单击“开始”按钮,标签从停止的位置继续移动
C) 当标签全部移出窗体后,将从窗体的另一端出现并重新移动
D)标签按指定的时间时隔移动
答案A
(28)执行以下程序段
a$="abbacddcba"
For i=6 To 2 Step -2
X=Mid(a,i,i)
Y=Left(a,i)
z=Right(a,i)
z=UCase(X&Y&z)
Next i
Print z
输出结果为
A)ABA B)BBABBA C)ABBABA D)AABAAB
答案B
(29)在窗体上画一个名称为Command1的命令按钮,然后编写如下程序:
Option Base 1
Private Sub Command1_Click()
Dim a As Variant
a=Array(1,2,3,4,5)
Sum=0
For i=1 To 5
Sum = sum+a(i)
Next i
x=Sum/5
For i =1 To 5
If a(i)>x Then Print a(i);
Next i
End Sub
程序运行后,单击命令按钮,在窗体上显示的内容是
A)1 2 B) 1 2 3 C) 3 4 5 D) 4 5
答案D
(30)假定一个工程由一个窗体文件Form1和两个标准模块文件Model1及Model2组成。
Model1代码如下:
Public x As Integer
Public y As Integer
Sub S1()
x =1
S2
End Sub
Sub S2()
y=10
Form1Show
End Show
Model2的代码如下:
Sub Main()
S1
End Sub
其中Sub Main被设置为启动过程。程序运行后,各模块的执行顺序是
A) Form1->Model1->Model2
B) Model1->Model2->Form1
C) Model2->Model1->Form1
D) Model2->Form1->Model1
答案C
二、填空题(每空2分,共30分)
请将每空的正确答案写在答题卡1~15序号的横线上,答在试卷上不得分。
(1) 设有如下程序段:
a$="BeijingShanghai"
b$=Mid(a$,InStr(a$,"g")+1)
执行上面的程序段后,变量b$的值为__Shanghai___。
(2) 以下程序段的输出结果是___3____。
num =0
While num<=2
num = num+1
Wend
Print num
(3) 窗体上有一个名称为List1的列表框,一个名称为Text1的文本框,一个名称为Label1、Caption属性为“Sum”的标签,一个名称为Command1、标题为“计算”的命令按钮。程序运行后,将把1~100之间能够被7整除的数添加到列表框。如果单击“计算”按钮,则对List1中的数进行累加求和,并在文本框中显示计算结果,如图所示。以下是实现上述功能的程序,请填空。
Private Sub Form_Load()
For i=1 To 100
If i Mod 7 =0 Then
__List1AddItem i____
End If
Next
End Sub
Private Sub Command1_Click()
Sum =0
For i=0 To__List1ListCount-1___
Sum =Sum+__List1List(i)_____
Next
Text1Text=Sum
End Sub
(4) 本程序的功能是利用随机数函数模拟投币,方法是:每次随机产生一个0或1的整数,相当于一次投币,1代表正面,0代表反面。在窗体上有三个文本框,名称分别是Text1、Text2、Text3,分别用于显示用户输入投币总次数、出现正面的次数和出现反面的次数,如图所示。程序运行后,在文本框Text1中输入总次数,然后单击“开始”按钮,按照输入的次数模拟投币,分别统计出现正面、反面的次数,并显示结果。以下是实现上述功能的程序,请填空。
Private Sub Command1_Click()
Randomize
n=CInt(Text1Text)
n1=0
n2=0
For i=1 To__n___
r=Int(Rnd2)
If r=___1____Then
n1=n1+1
Else
n2=n2+1
End If
Next
Text2Text=n1
Text3Text=n2
End Sub
(5) 阅读程序:
Option Base 1
Private Sub Form_Click()
Dim a(3) As Integer
Print "输入的数据是:";
For i=1 To 3
a(i)=InputBox("输入数据")
Print a(i);
Next
If a(1)<a(2) Then
t=a(1)
a(1)=a(2)
a(2)=___t____
End If
If a(2)>a(3) Then
m=a(2)
ElseIf a(1)>a(3) Then
m=___a(3)___
Else
m=__a(1)___
End If
Print "中间数是:";m
End Sub
程序运行后,单击窗体,在输入对话框中分别输入三个整数,程序将输出三个数中的中间数,如图所示。请填空。
(6) 在窗体上画一个名称为“Command1”,标题为“计算”的命令按钮,再画7个标签,其中5个标签组成名称为Label1的控件数组;名称为Label2的标签用于显示计算结果,其Caption属性的初始值为空;标签Label3的标题为“计算结果”。运行程序时会自动生成5个随机数,分别显示在标签控件数组的各个标签中,如图所示。单击“计算”按钮,则将标签数组各元素的值累加,然后计算结果显示在Label2。请填空。
Private Sub Command1_Click()
Sum = 0
For i=0 To 4
Sum=Sum+__Label1(i)caption__
Next
___Label2caption__=Sum
End Sub
(7) 在窗体上画两个名称分别为Command1和Command2、标题分别为“初始化”和“求和”的命令按钮。程序运行后,如果单击“初始化”命令按钮,则对数组a的各元素赋值;如果单击“求和”命令按钮,则求出数组a的各元素之和,并在文本框中显示出来,如图所示。请填空。
Option Base 1
Dim a(3,2) As Integer
Private Sub Command1_Click()
For i=1 To 3
For j=1 To 2
__a(i,j)__=i+j
Next j
End Sub
Private Sub Command2_Click()
For j=1 To 3
For i=1 To 2
s=s+__a(j,i)___
Next i
Next j
Text1Text= __s__
End Sub
评分标准和参考答案
一、选择题((1)—(20)每小题2分,(21)—(30)每小题2分,共70分)
(1)-(10) BCAAC DDBAB
(11)-(20) DACBD ABBDD
(21)-(30) BDCBC AABDC
二、填空题(每空2分,共30分)
1、(1)"Shanghai"
2、(2)3
3、(3)list1additem i (4) list1listcount-1 (5) list1list(i)
4、(6)n (7) 1
5、(8)t (9) a(3) (10) a(1)
6、(11)label1(i)caption (12) label2caption
7、(13)a(i,j) (14) a(j,i) (15) s (注意:i,j 要换位置,别给迷惑到了)
祝你能顺利通过拉~!
以上就是关于求VFP程序设计上机指导与习题选解全部的内容,包括:求VFP程序设计上机指导与习题选解、急求!谁知道2006计算机上机答案,、java程序设计精讲上机实践答案(最好是第3章和4,5章的答案)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)