for ( ) scanf (“%d”, p); for ( ) if ( ) max=*p; printf (“MAX=%d\\n”,max); }
(2)字符串和字符指针。输入一个字符串,将其中的大写字母转换成小写字母,然后输出。
字符数组实现: # include
gets( ); for( );
if( ) s[i]=s[i]+?a?-?A?; i=0;
while( )
{ printf (“%c”,s[i]); } }
字符指针变量实现: #include
scanf(“%s”,p); /*注意用scanf()输入和gets()输入的
区别*/
while( ) {
if( ) *p=*p+(?a?-?A?);
}
puts ( ); } ??????????????WSJ 提示:scanf ()输入时遇到空格认为字符串结束,用gets()输入时只有遇到回车才认为字符串结束。如键入any boy并回车,则
scanf (“%s”,s)的结果为: a n y \\0 gets (s)的结果为: a n y b o y \\0
3、编程序并上机调试运行程序(都要求用指针处理)。 (1) 输入三个整数,按由小到大的顺序输出,然后将程序改为:输入三个字符串,按由小到大顺序输出。 (2)将一个3×3的矩阵转置,用一函数实现之。
在主函数中用scanf函数输入以下矩阵元素: l 3 5 7 9 11 13 15 19
将数组名作为函数实参,在执行函数的过程中实现矩阵转置,函数调用结束后在主函数中输出已转置的矩阵。 (3)用一个函数实现两个字符串的比较,即自己写一个strcmp函数,函数原型为:int strcmp (char * p1, char * p2); 设p1指向字符串s1,p2指向字符串s2,要求当s1=s2时,函数返回值为 0, 如果sl≠s2,则返回它们二者第一个不相同字符的ASCII码差值(如“BOY”与“BAD”的第二个字母不相同,“O”与“A”之差为79—65=14);如果sl>s2,则输出正值;如果sl 两个字符串s1、s2由main函数输入,strcmp函数的返回值也由main函数输出。 (4)编程统计一个字符串中大写字母、小写字母、数字和其他字符的个数。 提示:只要逐个检查字符串中的字符,然后将相应的计数器加1就可以统计出各类字符的数量,设up用于记录大写字母数量,low用于记录小写字母数量,digit用于记录数字数量,other用于记录其他字符的数量, (5)编写函数,函数原型如下: int getdata( char *str ); 判断字符串str是否为十进制串,若是转换为十进制数返回,若不是则返回-1。 并编写主函数,调用该函数,输入一行字符,将其转换为十进制数输出。 实验9 结构体和共用体 一、实验目的 1、掌握结构体类型变量的定义和使用; 2、掌握结构体类型数组的概念和使用; 3、了解共用体的概念与使用。 二、实验内容 1、 调试程序并运行 (1)定义一个结构体变量(包括年、月、日),计算给定日期在本年中是第几天。 struct dt { int year ; int month ; int day ; }date ; main( ) { int days( ) ; int i , day_sum ; printf (“Please input Y,M,D\\n” ) ; scanf ( “%d %d %d ”,date.year,date.month,date.day ) ; printf ( “\\n%d %d %d is: %d days\\n”,date.year,date.month,date.day, days(date ) );} int days ( int year,int month,int day) { int i,day_sum=0 ; static int day_tab[13]={ 0,31,28,31,30,31,30,31,31,30,31,30}; for(i=0;i if ((year%4= =0 && year0 !=0 || year@0= =0 ) && month>=3) day_sum+=1; return day_sum; } (2)输入和运行以下程序 union data { int i[2]; float a; long b; char c[4]; }u; main ( ) { scanf(\ printf(i[0]=%d,i[1]=ú=?=c[0]=%c,c[1]=%c, c[2]=%c,c[3]=%c,u.i[0],u.i[1],u.a,u.b,u.c[0],u.c[1],u.c[2],u.c[3]); } 输入两个整数10000、20000给u.i[0]和u.i[l],分析运行结果。 然后将scanf语句改为: scanf(\%ld\; 输入60000给b,分析运行结果。 2、程序填空并调试运行。 (1)结构体变量案例。编程输出两个小孩的记录信息。1 个男孩和1 个女孩,其姓名首字母分别为“R”和“H”;男孩15岁,女孩比男孩小1岁子;男孩的成绩为75,女孩的成绩为82。 该案例涉及结构体变量的定义、初始化和结构体变量成员的引用。 # include struct childrec /*定义结构体类型*/ { char initial; /*姓名首字母*/ int age; /*年龄*/ int grade; /*成绩*/ }boy,girl; boy.initial=?R?; girl. initial=?H?; girl.age=boy.age-1;