14级程序设计基础题库c语言68更新2文档格式.docx
《14级程序设计基础题库c语言68更新2文档格式.docx》由会员分享,可在线阅读,更多相关《14级程序设计基础题库c语言68更新2文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
![14级程序设计基础题库c语言68更新2文档格式.docx](https://file1.bdocx.com/fileroot1/2022-11/27/bcbcae1d-cb15-4baa-9a63-71f47ad30b1f/bcbcae1d-cb15-4baa-9a63-71f47ad30b1f1.gif)
定义任意长度的密码,输出反向的密码。
5、判断字符串是否为回文串。
(提示:
回文字符串是具有回文特性的字符串:
即该字符串从左向右读和从右向左读一样,如12321)(难)
6、将字符串中的小写字母改为相应的大写字母。
(难)
charstr[10]={"
bcaefd"
inti;
for(i=0;
str[i]!
='
\0'
;
i++)
if(str[i]>
a'
&
str[i]<
z'
)
str[i]-=32;
puts(str);
}
7、定义两个字符串,比较两个字符串的长度,输出较长的字符串。
若两个字符串长度相同,则输出第一个字符串。
charstr1[10]={"
charstr2[10]={"
gfsdhf"
inti,j;
i=strlen(str1);
j=strlen(str2);
if(i<
j)
puts(str2);
puts(str1);
8、定义一字符串,输出字符串中第一个出现字母a的位置,如没有则输出-1。
charstr[100]={"
bca452adefb543s53d"
inti,n=0;
{
if(str[i]=='
n=i;
if(n>
0)
break;
}
%d\n"
n+1);
9、定义一字符串,统计该字符串中数字的个数。
abc452defb543s53d"
0'
9'
n++;
n);
10、定义两个字符串,合并成一个新的字符串并输出。
charstr1[100]={"
abcdefbsd"
charstr2[]={"
3421sd"
printf("
%s\n"
strcat(str1,str2));
七、函数(抽1道,写代码)
注:
在分支结构中任抽一题,要求用函数实现。
八、指针(10道抽1道,写代码)
11、定义函数求2个整数的最大值(要求使用指针变量作函数参数来实现)。
(较难)P226
intmain()
voidswap(int*p1,int*p2);
inta,b;
int*p1,*p2;
请输入两个整数给ab:
\n"
scanf("
%d%d"
&
a,&
b);
p1=&
a;
p2=&
b;
if(a<
b)
swap(p1,p2);
max=%d\n"
a);
return0;
voidswap(int*p1,int*p2)
inttemp;
temp=*p1;
*p1=*p2;
*p2=temp;
12、定义函数实现两个float型数的交换(要求使用指针变量作函数参数来实现)(较难)
voidswap(float*p1,float*p2);
floata,b;
float*p1,*p2;
请输入两个数给ab:
%f%f"
a=%0.2fb=%0.2f\n"
a,b);
voidswap(float*p1,float*p2)
floattemp;
13、定义(返回指针)函数求三个数的最大值。
inta,b,c;
int*max(intx,inty,intz);
%d%d%d"
b,&
c);
*max(a,b,c));
int*max(intx,inty,intz)
intf,*q;
f=x;
if(x<
y)
f=y;
if(y<
z)
f=z;
q=&
f;
returnq;
14、定义(返回指针)函数求三个数的和。
f=x+y+z;
15、定义函数求x,y中的较小数(要求用指向函数的指针实现)。
P269
intmin(int,int);
int(*p)(int,int);
(*p)=min;
c=(*p)(a,b);
min=%d\n"
c);
return0;
intmin(intx,inty)
if(x>
returny;
returnx;
16、定义函数求x,y中的较大数(要求用指向函数的指针实现)。
intmax(int,int);
(*p)=max;
intmax(intx,inty)
17、求一个字符串中的数字字符之和。
(要求用指向字符串的指针实现)(难)
char*p,a[20];
inti,j=0;
gets(a);
i<
20;
if(a[i]>
a[i]<
{
p=(a+i);
j+=*p-48;
}
j);
18、输出字符串长度。
char*p,a[100];
a[i]!
p=(a+i);
j++;
19、键盘输入10个数,输出10个数的和(指向一维数组的指针实现)。
int*p,i,j=0,a[10];
10;
scanf("
%d"
a[i]);
p=&
a[i];
j=j+*p;
20、键盘输入10个数,输出10个数的最大值(指向一维数组的指针实现)。
int*p,i,max,a[10];
p=a;
max=a[0];
for(i=1;
if(max<
*(p+i))
max=*(p+i);
max);
九、数据类型(10道抽1道,写代码)
structstudent
21、定义一个日期结构体变量(年、月、日),定义包含3个日期信息的数组,输出这些日期信息。
structdate
inty;
intm;
intd;
};
structdates[3]={{2015,4,28},{2015,3,4},{2015,3,5}};
=2;
%d%d%d\n"
s[i].y,s[i].m,s[i].d);
22、定义一个结构体,管理员工的信息(工号,姓名,工资),定义包含3个员工信息的数组,输出这些员工信息记录。
structygxx
intgh;
charxm[10];
floatgz;
structygxxs[3]={{001,"
xiao"
2800},{002,"
adsd"
40000},{003,"
fdag"
5000}};
%d%s%f\n"
s[i].gh,s[i].xm,s[i].gz);
23、定义一个结构体,管理学生的成绩(姓名,学号,成绩),定义包含3个学生信息的数组,输出这些学生信息记录。
intxh;
floatcj;
structygxxs[3]={{"
yang"
001,80},{"
wang"
002,94},{"
zhang"
003,89}};
%s%d%f\n"
s[i].xm,s[i].xh,s[i].cj);
24、定义一个结构体,管理学生的成绩(姓名,学号,成绩),从键盘输入3个学生的数据后,求平均成绩。
}s[3];
floatsum=0,avg=0;
%s%d%f"
s[i].xm,&
s[i].xh,&
s[i].cj);
sum+=s[i].cj;
avg=sum/3;
avg=%0.1f\n"
avg);
25、定义一个结构体,管理学生的成绩(姓名,学号,成绩),从键盘输入5个学生的数据后,求最高分。
}s[5];
floatmax;
=4;
max=s[0].cj;
for(j=1;
j<
j++)
s[j].cj)
max=s[j].cj;
max=%0.1f\n"
26、定义一个结构体,管理学生的成绩(姓名,学号,成绩),从键盘输入5个学生的数据后,求5个学生的总成绩。
floatsum=0;
sum=%0.1f\n"
sum);
enum[枚举名]{枚举元素列表};
27、定义一个结构体表示日期,包含年、月、日、星期,其中星期用枚举类型实现,用今天的日期将其初始化。
enumWeekday{sun,mon,tue,wed,thu,fri,sat};
enumWeekdayi;
structdates={2015,7,2};
i=wed;
28、定义一个结构体表示日期,包含年、月、日、星期,其中星期用枚举类型实现,用(2015-4-28星期二)将其初始化。
structdates={2015,4,28};
i=tue;
29、编写一个函数,向一个动态链表插入结点。
30、编写一个函数,删除动态链表中某结点。