5-8、编写程序,输入5行5列整数方阵,计算并输出该方阵两条对角线上各元素的平方和。【2010年】
5-9、一串数码是否构成合法的信用卡号,可以通过CheckCard算法来验证。【2011年】 CheckCard 算法验证的过程如下: 卡号的长度必须是16位。
从卡号最后一位数字开始,将奇数位数字求和。
从卡号最后一位数字开始,将偶数位数字乘以2(如果乘积为两位数,则减9),再求和。 将②和③所得的和值相加,当结果能被10整除时,则校验通过。 例如,卡号是:5432123456788881 奇数位和等于35
偶数位乘以2(乘积为两位数的减去9)的结果:1 6 2 6 1 5 7 7,求和等于35。 35+35=70可以被10整除,校验通过。
编写函数实现CheckCard算法,判断输入的卡号是否能通过验证,通过则显示\成功\,否则显示\失败\。
5-10、随着信息化进程的不断推进,数据的安全性越来越受到人们的重视,数据加密技术是保证数据安全的重要手段。编程实现对C盘根目录下名为\文件的数据进行加密,加密方式是将\文件中每个字符与字符A进行异或运算,运算后的加密数据存储到\文件中(共20分)【2011年选做】
5-11、Merge函数用于将两个升序的链表head1和head2合并成一个链表,并保持合并后链表依然升序。排序的依据为结构体类型Node中的data成员,合并中不得删除节点。下面给出Merge函数的主体框架,在空出的五个位置补充该主体框架缺失的代码段。注意:不能定义新的变量,可不用已定义的某些变量。【2012年】 typedef struct Node {
第 41 页 共 46 页
int data;
struct Node *next; }Node;
Node *Merge(Node *head1,Node *head2) {
if ( head1==NULL) return head2; if(head2==NULL) return headl;
Node *head=NULL;//head指针用于指向合并后链表的头结点 Node *pl=NULL; Node *p2=NULL;
if(headl->data
_________________ p2=head2; }else{
head=head2;
_________________ pl=headl; } }
Node *pcurrent=head; while(p1!=NULL&&p2!=NULL) {
if(pl->data<=p2->data){ pcurrent->next=p1; _________________ p1=pl->next; }else{
pcurrent->next=p2; _________________ p2=p2->next; } }
if(pl!=NULL)
_________________ if(p2!=NULL)
pcurrent->next=p2; return head; }
5-12、折半查找也称为二分查找,适用于有序数组,其查找的基本过程是:先确定待查记录所在的范围,然后逐步缩小范围,直到找到,或找不到该记录为止。假定数组按照升序排列,对于给定值K,从数组中间位置开始比较,如果当前数据元素的值等于k,则查找成功。否则,若k小于当前数据元素的值,则在数组的前半部继续查找;反之,则在数组的后半部继续查找,依次重复进行,直至获得查找成功或不成功的结果。请补充完成下列程序中的相应部分:【2013年】
第 42 页 共 46 页
#include
int key=0;
printf(\请输入要查找的数:\scanf(\
int data[10]={1,3,5,7,8,9,13,18,22,28}; int ret=BinarySearch(key,data); if(ret>=0)
printf(\是数组中的第%d个数\\n\else
printf(\在数组中未找到!\\n\system(\return 0; }
int BinarySearch(int key,int data[]){ int low=0,high=9,middle;
while(_________________){ /*查找结束条件*/ int middle=_________________ ; /*获取数组中间位置*/
if(_________________ ) /*如查当前数据元素的值等于k*/ return middle; /*返回所在位置*/
if(key _________________ /*在数组的后半部继续查找*/ } return -1; /*返回查找不成功标记*/ } 5-13、以字符串的形式输入一个浮点数的字符串,通过程序转换成对应的浮点数,需要考虑输入数据的正负。【2014年】 说明:字符'0'比数字0的ASCII码值大48。 #include char src[N],ch; int i,count=0,j;//count用于记录某字符为小数点后第几位 gets(src); //isPositive用于标示正负,isBeforeDecimalPoint用于标示小数点前或小数点后 int isPositive=1,isBeforeDecimalPoint=1; double result=0; for(i=0;i case '-':isPostive=0;break; 第 43 页 共 46 页 case '.': isBeforeDecimalPoint=0;break; default: if(ch>='0'&&ch<='9'){ if(isBeforeDecimalPoint) __________________ else { __________________ float temp=1; for(j=0;j __________________ } } } }else break; } if(!isPositive) __________________ printf(\} 5-14、编写程序用于从键盘读取一个字符串,将字符串中所有连续的数字转换为对应的整数并添加到链表中,整个字符串处理完毕后输出链表的内容。如输入a25re776!jk321ss时,输出为25 776 321【2015年】 #include #define LEN sizeof(struct IntData) struct IntData {Long data; struct IntData *next; }; /*将数据为data的新节点插入链表*/ struct IntData *addToList(long data,struct IntData *curTail) { struct IntData *p=(struct IntData *)malloc(LEN); p->data=data; p->next=NULL; if(curTail!=NULL) return p; } struct IntData *pickIntegersFromStr(char *str) { char ch; long data=0; /*hasData用于标识当前是否正在处理数字字符*/ /*isAdd标识处理的整数数据是否被添加到链表*/ /*isFirst标识是否是添加到链表的第一个数据*/ 第 44 页 共 46 页 int hasData=0,isAdd=0,isFirst=1; /*tail指向链尾,head指向链头*/ struct IntData *head=NULL,*tail=NULL,*p; while((ch=*str)!='\\0') { if(ch>='0'&&ch<='9') { hasData=1; isAdd=0; } else { if(hasData&&!isAdd) { p=addToList(data,tail); if(isFirst) { tail=p; isFirst=0; } else tail=p; hasData=0; isAdd=1; } } str++; } if(hasData&&!isAdd) { p=addToList(data,tail); if(isFirst) } return head; } void printList(struct IntData *head) { struct IntData *p=head; while(p!=NULL) { printf(\p=p->next; } printf(\} main() { char str[100]; struct IntData *head=NULL; gets(str); head=pickIntegersFromStr(str); printList(head); } 第 45 页 共 46 页 5-15、一个数列的通项为:an=10n,n=0,1,2,3??,构成了1,10,100,1000,??,把它们连起来,就成了数串:110100100010000??。现在从键盘输入一下正整数n(n<10000)用来表示这个数串的第n位,函数judge()的功能是用来输出数串第n位的值(0或1)。【2016年】 #include \int judge(int n) { int i; int k=1; for(i=0;___①____;i++,___②____) ____③_____ return(____④____); } int main() { int n; printf(\scanf(\ printf(\⑤_____); return 0; } 第 46 页 共 46 页 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库湖南省普通高等学校对口招生考试计算机应用类专业综合知识试卷--(10)在线全文阅读。
相关推荐: