1. 定义结构体的关键字是()
A. union B. enumC.struct D.typedef
2. 设整型变量a为5,使b不为2的表达式是( )
A. b=a/2B. b=6-(--a)C. b=a%2D. b=a>3?2:1
3. 下面哪一项是不正确的字符串赋值或赋初值的方法()
A. char *strstr= “china”
B. char str[7]= {‘c’, ‘h’, ‘i’, ‘n’, ‘a’}
C. char str1[]= “china”,str2[]=“123”
D. char str1[10]str1= “china”
4. 以下对二维数组a进行正确初始化的是( )
A. int a[2][3]={{1,2},{3,4},{5,6}} B. int a[ ][3]={1,2,3,4,5,6}
C. int a[2][ ]={1,2,3,4,5,6} D. int a[2][ ]={{1,2},{3,4}}
5. 选出下列标识符中不是合法的标识符的是()
A. hot_do B. cat1 C. _pri D. 2ab
6. 以下说法中正确的是( )
A. C语言程序总是从第一个的函数开始执行
B. 在C语言程序中,要调用的函数必须在main()函数中定义
C. C语言程序总是从main()函数开始执行
D. C语言程序中的main()函数必须放在程序的开始部分
7. 若已定义:int a[9], *p=a并在以后的语句中未改变p的值,不能表示a[1]地址的表达式为( )
A. p+1 B. a+1 C. a++D. ++p
8. 若有说明: int i,j=7, *p=&i, 则与i=j等价的语句是( )
A. i= *p B. *p=*&j C. i=&j D. i=* *p
9. 若变量c为char类型,能正确判断出c为小写字母的表达式是( )
A. ‘a’<=c<= ‘z’ B. (c>= ‘a’) || (c<= ‘z’)
C. (‘a’<=c) and (‘z’>=c) D. (c>= ‘a’) &&(c<= ‘z’)
10. 以下程序的输出结果是( )
main()
{ int a[]={1,2,3,4,5,6,7,8,9}, *p
p=a
*(p+3)+=2
printf( “%d,%d\n”,*p,*(p+3) )}
A. 0, 5 B. 1, 6 C. 1, 5 D. 0, 6
11. 以下程序的输出结果是( )
main()
{ int a=5
float x=3.14
a*=x*(‘E’- ‘A’)
printf(“%f\n”,(float)a)}
A. 62.000000 B. 62.800000 C. 63.000000 D. 62
12. 以下程序的输出结果是( )
#define f(x) x*x
main()
{ int a=6,b=2,c
c=f(a)/f(b)
printf(“%d\n”,c)}
A. 9 B. 6 C. 36 D. 18
13. 定义如下变量和数组:int iint x[3][3]={1,2,3,4,5,6,7,8,9}
则语句for(i=0i<3i++) printf("%d ",x[i][2-i])的输出结果是( )
A. 1 5 9B. 1 4 7C. 3 5 7 D. 3 6 9
14. 下列程序段的输出结果是 ( )
void main( )
{ int k
for (k=1k<5k++)
{ if(k%2!=0)
printf( “#” )
else
printf(“*”) }
}
A. #*#* B . *#*#C. ## D. **
15. 下列程序执行后输出的结果是( )
int d=1
fun (int p)
{ int d=5
d + =p + +
printf("%d,",d)}
main( )
{ int a=3
fun(a)
d + = a + +
printf("%d\n",d)}
A. 8, 4 B. 9, 6 C. 9, 4 D. 8, 5
二. 填空题(共7题,每空2分,共30分)
1. 数组 int a[3][5]共定义了_______________个元素。
2. 有float f=3.1415927则 printf(“%5.4f”, f )输出的结果是_______________。
3. 下面程序的功能是:输出 100以内(不包含100)能被 3整除且个位数为 6的所有整数,请填空。
main( )
{ int i
for(i=1_______________i++)
if (_______________)
printf("%d", i);
}
4. 设有“int x=2, y”说明,则逗号表达式“y=x+5,x+y”的值是 _______________
5. 以下是使用指针,进行字符串复制的程序,请填空。
main()
{ char a[]= “Tsinghua University”, b[30], *p1,*p2
p1=a
p2=b
for(*p1!= ‘_______________’p1++, p2++)
_______________=_______________
*p2= ‘_______________’
printf(“string a is:%s\n”,a)
printf(“string b is:%s\n”,b)
}
6. 下面程序用冒泡法对数组a进行降序排序,请填空。
main()
{ int a[5]={4,7,2,5,1}
int i,j,m
for(i=0i<4i++)
for(j=0j<_______________j++)
if( _______________<_______________ )
{ m=a[ j]
a[ j]=a[ j+1]
a[ j+1]= m}
for(i=0i<5i++)
printf("%d ",a[i])
}
7. 函数fun的功能是:使一个字符串按逆序存放,请填空。
void fun (char str[])
{ char mint i,j
for(i=0,j=strlen(str)i<_______________i++,j--)
{ m=str[i]
str[i]= _______________
str[j-1]=m
}
printf("the rotated string is %s\n",_______________)
}
#include <stdio.h>#include <windows.h>
#define BUFFER 100
void getScore(int a[],int n)
void sort(int a[],int n)
void sort(int a[],int n, char style)
int foundScore(int a[],int n,int score)
void insertScore(int a[],int *n,int score)
void deleteScore(int a[],int *n,int score)
void displayScore(int a[],int n)
void main_menu()
int score[BUFFER]= //-1 表示没有成绩
void getScore(int a[],int n)
{
for (int i=0i!=n++i)
{
printf("请输入第%d个成绩:\n",i+1)
scanf("%d",&a[i])
}
}
void sort(int a[],int n)
{
printf("从高到低排序\n")
for (int j=0j!=n-1++j)
{
for (int i=0i!=n-1-j++i)
{
if (a[i]<a[i+1])
{
int temp=a[i]
a[i]=a[i+1]
a[i+1]=temp
}
}
}
printf("排序后输出:\n")
for (int i=0i!=n++i)
{
printf("%d\n",a[i])
}
}
void sort(int a[],int n, char style)
{
if (style=='a')
{
printf("按升序排序\n")
for (int j=0j!=n-1++j)
{
for (int i=0i!=n-1-j++i)
{
if (a[i]>a[i+1])
{
int temp=a[i]
a[i]=a[i+1]
a[i+1]=temp
}
}
}
printf("排序后输出:\n")
for (int i=0i!=n++i)
{
printf("%d\n",a[i])
}
}
else if (style=='b')
{
printf("按降序排序\n")
for (int j=0j!=n-1++j)
{
for (int i=0i!=n-1-j++i)
{
if (a[i]<a[i+1])
{
int temp=a[i]
a[i]=a[i+1]
a[i+1]=temp
}
}
}
printf("排序后输出:\n")
for (int i=0i!=n++i)
{
printf("%d\n",a[i])
}
}
else
{
printf("输出错误")
}
}
int foundScore(int a[],int n,int score)
{
for (int i=0i!=n++i)
{
if (a[i]==score)
{
printf("你要查找的成绩%d下标是:%d",a[i],i)
break
}
}
if (i==n)
{
printf("没有找到\n")
return -1
}
return i
}
void insertScore(int a[],int *n,int score)
{
if (BUFFER>*n)
{
a[++(*n)]=score
printf("%d",a[*n])
printf("插入成功\n")
}
else
{
printf("数组已满\n")
}
}
void deleteScore(int a[],int *n,int score)
{
if (*n!=0)
{
int temp=foundScore(a,*n,score)
for (temp!=*n++temp)
{
a[temp]=a[temp+1]
}
*n--
printf("删除成功\n")
}
else
{
printf("数组是空的\n")
}
}
void displayScore(int a[],int n)
{
printf("输出所有成绩:\n")
for (int i=0i!=n++i)
{
printf("%d\n",a[i])
}
}
int main_menu(int choice)
{
printf("\n\n\t\t\t 学生成绩管理\n")
printf("\t\t\t1、输入成绩\n")
printf("\t\t\t2、成绩从高到低排名\n")
printf("\t\t\t3、成绩排名\n")
printf("\t\t\t4、成绩查找\n")
printf("\t\t\t5、成绩插入\n")
printf("\t\t\t6、成绩删除\n")
printf("\t\t\t7、输出成绩\n")
printf("\t\t\t0、退出\n")
printf("\t\t你的输入:")
scanf("%d",&choice)
return choice
}
int main()
{
int choice=0
int flag=0
int num=0,temp
char way
while(1)
{
system("cls")
switch (main_menu(choice))
{
case 1:
system("cls")
printf("请输入要输入的成绩个数:")
scanf("%d",&num)
getScore(score,num)
system("pause")
break
case 2:
system("cls")
sort(score,num)
system("pause")
break
case 3:
system("cls")
printf("请输入排序方式:\ta==升序\tb==降序\n")
fflush(stdin) //清除缓冲
scanf("%c",&way)
sort(score,num,way)
system("pause")
break
case 4:
system("cls")
printf("请输入你要查找的成绩:")
fflush(stdin)
scanf("%d",&temp)
foundScore(score,num,temp)
system("pause")
break
case 5:
system("cls")
printf("请输入你要插入的成绩:")
fflush(stdin)
scanf("%d",&temp)
insertScore(score,&num,temp)
system("pause")
break
case 6:
system("cls")
printf("请输入你要删除的成绩:")
fflush(stdin)
scanf("%d",&temp)
deleteScore(score,&num,temp)
system("pause")
break
case 7:
system("cls")
displayScore(score,num)
system("pause")
break
case 0:
flag=1
break
}
if (flag)
{
system("cls")
printf("感谢使用!")
break
}
}
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)