不予邮寄;对可以邮寄的包裹每件收手续费0.2元,再加上根据下表按重量wei计算的邮资:
重量(千克) wei<=10 10
{ float len,wid,hei,wei,mon,r; scanf(\ if( ) r=-1 ;
else if(wei<10) r=0.8; ekse if( ) r=0.75; else if(wei<=30) ; if(r==-1) printf(\不予邮寄\\n\ else { mon= ;
printf(\}
收费标准(元) 0.80 0.75 0.70 }
四、程序分析(每空5分,共75分)
32. 阅读程序,写出运行结果(每空5分,共25分) 1、以下程序运行时的结果是 _。
#define ABC(x) x*x main()
{ int a,k=3;
a=++ABC(k+1); printf(\
}
2、以下程序运行时的结果是 #include
main()
{ int k=1,t=3; do { t+=k++; if(t%7==0) continue; else ++k; }while(t<15); printf(\
}
3、以下程序运行时的结果是
计算机应用类专业综合知识试题第9页(共17页)
#include
strcpy(s, \for(p=s; *p!= '\\0'; p++) if(*p==' ') i=0; else if(i==0)
{ n++; i=1;} printf(\}
4、以下程序运行时的结果是 _。
#include \void main() { int i=5;
char c[6]=\
do{ c[i]=c[i-1];
}while(--i>0); puts(c); }
5、在turbo c 3.0环境中,运行下列程序,结果是 #include \void main()
{ int s[10]={1,3,5,7,9,11,13,15,17,19},*p=s+2;
long *q; q=(int *)p; q=q+2; p=(int *)q; printf(\
}
33、程序填空。按照题目要求,将正确内容填入答题卡相应位置,使程序完整。(每空5分,共30分)
1、下面是某车站一个简单的客车车次查询程序。说明如下:客车车次数据文件checi.txt放在c:\\data目标下,格式为:
车次 始发站 终点站 离开本站的时间
T8 冷水滩 北京西 09:30 T364 冷水滩 广州 14:20 K118 冷水滩 上海东 22:00 ?? ? ?
计算机应用类专业综合知识试题第10页(共17页)
其中每行为一次车的信息,分为4个数据:车次、始发站、终点站和离开本站的时间。前三个数据项留的宽度为8个字符,最后项结束后即换行。数据项间一定有空格隔开,每一数据项内无空格。
假设下面程序发布为应用程序:checichachu.exe,用户在命令行中输入: checichachu 车次<回车>
程序在客车车次数据文件checi.txt中查找相应车次信息并输出该次车的始发站、终点站和离开本站时间,如果未找到,则输出“找不到该次车的信息!”。
#include
main( int argc, char *argv[]) { char info[4][20]; FILE *fp;
int i, found=0; if( argc!=2 )
{ printf(\参数个数不正确!\\n\ fp=fopen(\
if(fp==NULL) { printf(\无法打开数据文件!\\n\ while( ) { for(i=0;i<4;i++) fscanf( ); if( ) { found=1; printf(\始发站:%s\\n\ printf(\终点:%s\\n\ printf(\离开本站时间:%s\\n\ break; } if(found==0) printf(\找不到该次车信息!\\n\}
2、贪婪法:从问题的初始解出发,一步一步接近给定目标,并尽可能快速的去逼近更好的解,贪婪法追求最快最优解,但只能求某个解,不能求所有解。
例如:当收银员运算量最小,取得钱币张数最少时找零钱最快。比如,给顾客找97元钱,应该找1张50,2张20,1张5元,2张1元。
#include \
#define N 20 /* 限定找给顾客的最大张数*/
int find(int n, int *d,int c,int *pd) /*find产生数组p,并统计找零的张数*/ { int r; if(n==0) return 0; if(c==0) return -1; if(n<*d) return ; /*找下一币种*/
计算机应用类专业综合知识试题第11页(共17页)
34、阅读程序,修改程序的错误,不得增行或删行,也不得更改程序结构。请在答题卡中指出错误代码的行号,并给出该行修改后的程序代码。(每空5分,共20分)
程序功能是:通过命令行输入一个八进制数,将其转换为十进制数。函数实现转换,在主函数通过函数的指针调用函数。程序有4处错误,请改正。
L1 int value(char s) L2 { int sum=0; L3 while(s) L4 { if(*s>='0'&&*s<='9') L5 sum=sum*10+*s-'0'; L6 s++; L7 } L8 return sum; L9 }
L10 main(int i, char *s[]) L11 { int sum,(*p)( ); L12 if(i!=2) printf(\参数错误\L13 L14 L15 L16
else
{ p=value; sum=*p(s[1]); printf(\
else /* 找出同种币种,放入pd中*/
{ *pd=*d; r= ; if(r>=0) return r+1; return -1; } }
main()
{ int n,k,i,p[N],d[6]={100,50,20,10,5,1}; printf(\ input meneny n:\ scanf(\ for(i=0;i<6;i++) if(n>=d[i]) ; /*找到找零的第一张面额*/ k=find(n,&d[i],6-i,p); if(k<=0) printf(\ else { printf(\ for(i=1;i 计算机应用类专业综合知识试题第12页(共17页)
相关推荐: