三道典型C语言题(7)

来源:互联网 发布:php整站防注入程序 编辑:程序博客网 时间:2024/05/30 04:56

1、写一个函数找出一个整数数组中第二大的数。

PS1: 66 66 66 66 //无第二大的数字

PS2: 99 99 88 86 // 第二大的数字是88

#include<stdio.h>void func(int a[],int lenth){int i = 0 ,max = a[0] ;// max 为最大值 for( i=1 ; i<lenth ; i++)//首先求出最大值; {if( a[i] > max ){max = a[i];} } int temp = 0;//初始化第二大值temp 为 0 for( i=0 ; i<lenth ; i++ ){if( a[i]<max && a[i]>temp) temp = a[i];}if( temp == 0 )printf("无第二大数字\n");elseprintf("第二大数字为:%d",temp); }int main(void){int a[4] = {99,99,88,66};func(a,4);} 


 

2、一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号。只留下车号的一些特征。

甲说:车牌的前两位数字是相同的,

乙说:车牌的后两位的数字是相同的但与前两位不同

丙说:4位车牌恰好是某个整数的平方

#include <stdio.h>int main(void){int i=0 , j=0 , k=0 , n=0 ;int a , b ;for( i=1 ; i<10 ; i++){j = i ;for( k=0 ; k<10 ; k++){if( k!=i){n = k ;a = i*1000 + j*100 + k*10 + n;for( b=32 ; b<100 ; b++){if( a == b*b )printf("车牌号为:%d\n",a);}}}}}

 



3、What will print out why! 


main (void)

{

char *p1 = "name";

char *p2;

p2 = (char *)malloc(20);

memset(p2,0,20);

while(*p2++ = *p1++);

printf("%s\n", p2);

return 0;

}

 

 main (void){char *p1 = "name";char *p2;p2 = (char *)malloc(20); //给p2分配20字节的储存空间 memset(p2,0,20);//将p2置零 while(*p2++ = *p1++);//把指针*p1的值赋给*p2 printf("%s\n", p2); //此时p2指向字符串“name”结尾后一位,值为空 }


原创粉丝点击