班级姓名学号
一、选择题
1. 下面程序把数组元素中的最大值放入a[0]中。则在if 语句中的条件表达式应该是:
A)*p>a[0] B)p>a C)p>*a D)*p>a
main( )
{int a[10]={6,7,2,9,1,10,5,8,4,3},*p=a,i;
for(i=0;i<10;i++,p++)
if(________) *a=*p;
printf("%d",*a);`
}
2.下选项中合法的用户标识符是______。
A)int B) _abc C) 321 D) t.ext
7.有以下程序
#include <stdlib.h>
main()
{char *p,*q;
p=(char *)malloc(sizeof(char)*20); q=p;
scanf("%s%s",p,q); printf("%s%s\n",p,q);
}
若从键盘输入:abbc cd<回车>,则输出结果是______。
A) bcbc B) abbc cd C) abbc cd D) d d
8.设有如下定义:
struct mm
{int a;
float b;
}data;
int *p;
若要使p指向data中的a成员,正确的赋值语句是______。
A) p=&a; B) p=data.a; C) p=&data.a; D) *p=data.a
9.有以下程序
int fa(int x)
{return x*x; }
int fb(int x)
{return x*x*x; }
int f(int (*f1)(),int (*f2)(),int x)
{return f2(x)-f1(x); }
main()
{int i;
i=f(fa,fb,2); printf("%d\n",i);
}
程序运行后的输出结果是______。
A) -4 B) 1 C) 4 D) 8
10. 以下程序的输出结果是
main( )
{ int i;
for(i=1;i<6;i++)
{ if(i%2){printf("#");continue;}
printf("*");
}
printf("\n");
}A) *#*#* B)***** C)##### D)#*#*#
11. 程序
main()
{int x=10,y=20,t=0;
if(x==y)t=x;x=y;y=t;
printf("%d,%d\n",x,y);
}运行后的输出结果是
A) 20,0B)10, 20C) 10, 0 D) 20,10
12. 以下程序的输出结果是
A) 123456780 B) 123 456 780 C) 12345678 D) 147
main( )
{ char ch[3][4]={"123","456","78"}, *p[3];
int i;
for(i=0;i<3;i++) p[i]=ch[i];
for(i=0;i<3;i++) printf("%s",p[i]);
}
二、填空题(请按要求把内容填入【】中)
1、有以下程序
#include <string.h>
main(int argc,char *argv[])
{int i,len=0;
for(i=1;i<argc;i++) len+=strlen(argv[i]);
printf("%d\n",len);
}
程序编译连接后生成的可执行文件是test.exe,若运行时输入带参数的命令行是:
test abcd efg hi<回车>则运行的结果是【】。
6.以下函数的功能是删除字符串s中的所有大写字母字符。
viod dele(char *s)
{ int n=0,i;
for(i=0;s[i];i++)
if(【7】)s[n++]=s[i];
s[n]=【8】;
}
7.有以下程序
main()
{ char *s[]={"1","12","123"},*p;
p=s[1];
printf("%c,%s\n",*(p+1),s[0]);
}执行后输出结果是【9】.
8.有以下程序
main()
{ int i;
for(i=0;i<5;i++)
switch(i)
{ case 1: printf("%d",i);
case 2: printf("%d",i);
default: printf("%d",i);
}
}
执行后输出的结果是 【10】
9.以下程序的运行结果是【11】
#include "stdio.h"
main( )
{
int a[ ]={1,2,3,4,5,6,7,8,9,10,11,12};
int *p=a+5, *q=NULL;
* q=*(p+5);
printf("%d %d \n",*p,*q);
}
10. 语句:printf("%d",(a=5)&&(b= -5));的输出结果是【12】.
11.数学表达式a÷(b×c)的c语言表达式为【13】。
12.对文件的操作中,若要求文件的位置回到文件的开头,应当调用的函数为:【14】。
13. 下面程序的运行结果是:【15】。
typedef union person
{char name[10];
int xh;
char sex;
float score[6];
}S;
main()
{S a[5];
printf("%d\n",sizeof(a));
}
三、程序设计题
1、编程输出“九九”乘法口诀表(输出格式由考生自定)。
2、写一函数求n!并在主函数中调用求由键盘输入数n的阶乘.
3、编写函数实现取子字符串,即将字符串s1中第m个字符开始的全部字符复制到另一字符串s2中。在主函数中输入字符串s1,输出字符串s2。
4、编写并调用函数nlcount统计n(n<50)个人中各年龄段的人数并存到result数组中。要求:
①从主函数中输入n和n个人的年龄,统计结果在主函数中输出。
②年龄为1到9的人数存到result[0] ,年龄为10到19的人数存到result[1],年龄为20到29的人数存到result[2], 年龄为30到39的人数存到result[3],年龄为40到49的人数存到result[4], 年龄为50岁及以上的人数存到result[5]中。