1、一、填空题1输入一个不包含空格的字符串,将字符串反序输出,如:“abc12”的输出为“21cba” 。#include void f(char *p)char *p1, *p2;char c; p1=p2= ;while( *p2+);while ( ) c=*p1;*p1= ;*p2= ;p1+; p2-; void main()char s200;printf(“输入一个字符串:”);scanf( );f(s); printf(“字符串反序:%sn”,s);2输入 1 个长整数,求各位数字的平方和。例如:输入 123,输出 14。#include void main( ) int digi
2、t;long in,s; scanf(“%ld“, ;while(in0);s=s+digit*digit;printf(“sum=%ldn“, s);二、程序阅读题1写出下面程序运行结果(5 分)#include #define MSIZE 8void main()char imMSIZEMSIZE+1= “*”,“#”,“#*#*#”,“#*#”,“*”,“#*”,“*”,“#”;int i,j;for(j= MSIZE -1;j=0;j-)for(i=0;ivoid main() char *str1=“12123434“, *str2=”123424315”; int x=0, i;
3、for(i=0;str1i!=0i+)if(str1i=str2i) x+;printf(“%dn“,x); 3写出下列程序的输出结果 (4分)#include main() int a=4,b=6;printf(“a=%dn“,a1);4. 写出调用函数 f(-123)的输出结果是多少。(6 分)void f(int n)if(n#define NUM 3struct problems char problem20;int answer; myprosNUM=”2+3=?”,5,”2*3-13=?”,-7,“(2*31*5)%3=?”,1;int main( void ) int i=0,a
4、,score; printf(“test begin:n”)for(i=0,i#include struct nodeint data;struct node *next;void main() int a=12,11,10,9,8,7,6,5,4,3;int b=15,13,11,9,7;struct node *p,*q,*head;/* 以下程序实现生成链表 p 和 q,使得 p 链表中节点 data 的值依次为 a 数组,q 链表中节点 data 的值依次为 b 数组*/*按题意要求合并生成新的链表 head*/*输出链表 head*/2把一英文文章中的字母全部转换成密文字母输出到另一
5、个文件中,文中其他字符以及换行不变。字母转换规则为:A-E,B-F,V-Z,W-A,Z-D, a-e,b-f,v-z,w-a,z-d,即变成12 11 4 3 NULL15 13 9 7 NULL其后面第四个字母。文件名用命令行参数给出。假设源程序名 encrypt.c,命令行写法如下:encrypt script.txt cipher.txt其中 script.txt 为原始的英文文章,cipher.txt 为完成加密后的新文件。(本题 15 分)二一、填空题1输入 10 个点的坐标(设坐标为整数值), 输出距原点最远的点 (设唯一)的坐标及该点距原点的距离.#include void ma
6、in() struct int x, y;float length; point10;int k, sub=0;for(k = 0; k #include main() int num26=0,i; char c;while(_)!=#)if(isupper(c) numc-A+= _;for(i=0;istruct node int data;struct node *next;int min(struct node *first)/*指针 first 为链表头指针 */ strct node *p; int m;p= ; m= ; p=p-next;for(;p!=NULL;p=_)if(
7、p-datavoid main()int i,j;for(i=3;i=1;i-) for(j=1;jint fun(int a,int b) if(b=0) return a;else return (fun(-a,-b);main() printf(“%dn“,fun(4,2);3. 写出输出结果是多少。( 5 分)#include main() int j,a=1,3,5,7,9,11,13,15,*p=a+5;for(j=3; j ;j-)switch(j) case 1:case 2: printf(“%dn“,(*p)+);break;case 3: printf(“%dn“,*(p
8、-);4. 写出输出结果是多少。( 6 分)#include void fun1(char*p) char *q;q=p;while(*q!=0) (*q)+;q+;main()char a=“Program“,*p;p=fun1(p);printf(“%sn“,a);三、改错题(20 分)include int isprime()int i;for(i=2,i#define SIZE 10/* function prototypes */int binarySearch( int *p, int searchKey, int low, int high );/* function main
9、begins program execution */int main( void )int a SIZE = 88,77,66,55,44,33,22,11,8,2 ; /* create array a */int key; /* value to locate in array a */printf( “Enter a number between 0 and 88: “ );scanf( “%d“, . /* end main */ 2. 请编写函数 sum_fact(number),返回 number 的因子之和。 (能整除 number的数就是它的因子,number 定义为 int)例如 sum_fact(6) = 12 (因为 1, 2, 3, 6 是 6 的因子) (本题 10 分)3. 编写函数 ff(char *str, char ch)的功能是统计并返回字符 ch 在字符串str 中出现的次数。例如:调用 ff(“every“, e)后返回 2,因为在字符串“every“中字符e出现了 2 次。 (本题 10 分)