资源描述
试卷3
一、单项选择题(共20小题;每小题1分,共20分)
1、下列常量不合法的是( )。
A.1.5E-2 B.‘BASIC’ C.0x12 D.“\\good”
2、下列变量名中不合法的是( )。
A.iCount B.Stu_NO C.INT D.vc++
3、设变量已正确定义并赋值,以下正确的表达式是( )。
A.b=7++ B.x=3,++y C.a=7%3.0 D.x=y+1=2
4、表达式sizeof(double)-sizeof(3.1f)+3/2的值是( )。
A.4 B.5 C.5。5 D.1.5
5、下列各语句序列判别变量a、b的大小,若a〈b则交换它们的值,其中正确的是( ).
A.if (a<b) {t=a; a=b; b=t;} B.if (a<b) a=b; b=a;
C.if(a<b) {a=b; b=a;} D.if(a<b) t=a; a=b; b=t;
6、已知有程序段:int a=1,*p=&a,**q; q=&p; **q=3; printf(”%d\n",a);则该程序段正确执行后输出结果为( )。
A.1 B.3 C. 该程序段有语法错 D. 该程序段没有输出结果
7、若有说明:int *p,m=3,n;,则以下正确的程序段是( ).
A.p=&n;scanf(”%d”,&p); B.p=&&n;scanf(”%d",*p);
C.scanf(”%d”, &n);*p=n; D.p=&n;*p=m;
8、设有以下说明语句,则下面的叙述中不正确的是( ).
typedef struct student
{ long StuNO; char Stuname[9];char sex;float cscore;}STU;
A.typedef是给类型起别名 B.STU是结构变量名
C.StuNO是结构体STU的一个成员 D.STU是结构类型名
9、有定义或声明:int *myf(float x, long y);,若以下选项中的正确的是( )。
A. myf是指针数组; B. myf是数组指针;
C。 myf是指针函数; D. myf是函数指针;
10、C语言中函数返回值的类型是由( )决定的。
A.传递给函数的实参类型 B.return语句中的表达式类型
C.调用该函数的主调函数类型 D.定义函数时所指定的函数返回值类型
11、若有宏定义:#define FUN(x) x%x,则表达式FUN(2+3)的值为( )。
A.5 B.0 C.6 D.7
12、设有定义语句:char c1=32,c2=32;则以下表达式中值为0的是( ).
A. c1^c2 B. c1&c2 C。~c2 D。 c1|c2
13、若有以下定义语句:int m[]={5,4,3,2,1},i=4;,则下面对m数组元素的引用中错误的是( )。
A.m[i] B.m[2*2] C.m[m[0]] D.m[m[i]]
14、以下对二维数组arr的定义正确的是( )。
A.int arr[5][]={1,2,3}; B.int arr[][1]={{1,2,3},{4,5,6}};
C.int arr[3][3]={0}; D.int arr[2][3]={1,2,3,4,5,6,7,8};
15、若有定义语句:char s[]="hello\0theworld";,则strlen(s)的值是( )。
A.5 B.6 C.14 D.15
16、有定义int i=88,j=99,*p,*q;p=&i;q=&j; p=q;则printf("%d %d”,*p,*q)结果是( )。
A.88 88 B.88 99 C.99 99 D.99 88
17、已知有定义int a[8]={0},*p=a;,则不能表示a[1]元素的值的是( )。
A.*(p+1) B.*(++a) C.p[1] D.*&a[1]
18、有定义如下:
struct test
{ int a;int b[2];
}s[3]={{111,1,2},{222,3,4},{333,5,6}};
则s[1].b[0]的值是( ).
A。 3 B. 4 C。 5 D。 6
19、若要以写的方式创建新的文本文件,则在fopen函数中使用的打开方式是( ).
A.”w" B.”rb" C.”rb+” D."a+b”
20、若有定义:int a[5][2]={7,6,5,4,3,2,1}, *p=a[1];则*(++p)的值是( )。
A。2 B.3 C。4 D。5
二、阅读程序题,写出下列程序的运行结果。(本题10小题,每小题3分,共30分)
1、main()
{ FILE *fp;int i,buf[]={8,7,6,5,4,3,2,1};
fp=fopen("mytest。dat”,"wb+”);
fwrite(buf,sizeof(int),8,fp);
fseek(fp,sizeof(int)*4,SEEK_SET);
fread(buf,sizeof(int),4,fp);fclose(fp);
for(i=0;i<8;i++) printf("%d”,buf[i]);
}
输出结果为:______________________________。
2、main()
{ int x=1,y=0,a=0,b=0;
switch(x)
{ case 1:
switch(y)
{ case 0: a++; break;
case 1: b++; break;
}
case 2: a++; b++; break;
case 3: a++; b++;
}
printf(”a=%d,b=%d\n",a,b);
}
输出结果为:______________________________。
3、#include 〈string。h>
main()
{ char p[20]={’a’,'b’,’c’,’d’},q[]="abc”, r[]=”abcde";
strcpy(p+strlen(q),r); strcat(p,q);
printf(”%d %d\n”,sizeof(p),strlen(p));
}
输出结果为:______________________________。
4、以下程序设从键盘输入ABC后按〈Enter>键.
void f()
{ char ch=getchar();
printf(”%c”,ch);
if(ch!='\n')
f();
printf(”%c",ch);
}
void main()
{ f(); }
输出结果为:______________________________。
5、main( )
{ char *q[4]={”NANJING”,”BEIJING”,”HANGZHOU”,”SHANGHAI”};
char **p=q;
for (int i=0;i<4;i++,p++)
printf(”%c ”, *(*p+3)+1);
}
输出结果为:______________________________。
6、int n;
void f (int n )
{ static int a=3;
n+=2; a++;
printf("%d %d ”,n,a);
}
main()
{ f(n);f(n=5); printf(”%d ”,n); }
输出结果为:______________________________.
7、main()
{ int x,y,z;
x=y=z=0;
++x||++y&&++z;
printf("%d %d %d\n",x,y,z);
}
输出结果为:______________________________。
8、void f(int *q)
{ int i;
for(i=0;i〈5;i++) -—(*q);
}
main()
{ int a[5]={6,6,6,6,6},i;
f(a+2);
for(i=0;i<5;i++) printf("%d",a[i]);
}
输出结果为:______________________________。
9、main()
{ char str[3][7]={”1234”,”5678"},*myp[2];
int i,j,s=0;
for(i=0;i<2;i++) myp[i]=str[i];
for(i=0;i<2;i++)
for(j=1;myp[i][j]!=’\0';j+=2)
s=10*s+myp[i][j]—’0’;
printf("%d\n",s);}
输出结果为:______________________________。
10、struct NODE
{ int num;
struct NODE *next;};
main( )
{ struct NODE a[3]={{0,a+1},{0,a+2},{0,a}},*p=&a[0],*q=&a[1],*r=&a[2];
p—〉num=77; q—>num=88; r—>num=99;
p-〉next=q;q—〉next=r;r—>next=NULL;
printf(”%d\n”,p-〉next-〉next—>num);
}
输出结果为:______________________________。
三、程序填空题(共7小题,每空2分,共20分)
1、下面程序的功能是判断short型能表示的最大值.请填空。
main()
{
short n=0,m;
while(1)
{
m=n;
n++;
if(n<0)
_______________;
}
printf(”%d\n”,m);
}
2、建立一个链表,将存储在字符数组中的字符依次转储到链表的各个结点中。
#include 〈stdlib。h〉
typedef struct node
{ char data;
struct node *next;
}NODE;
NODE* CreatList(char s[])
{ NODE *head,*p,*last=NULL;
while(*s!=’\0')
{ p=______________________________;
p—>data=*s++;
p—>next=NULL;
if(last!=NULL)
last—〉next=p;
else
head=p;
last=p;
}
return _______________;
}
main()
{ char s[]="Hello 2012!”;
NODE *head;
head=CreatList(s);
}
3、以下程序的功能是:输入两个整数,求出它们的最大公约数并输出,请填空。
int gcd(int a,int b)
{ int k;
k= _______________;
while(k!=0)
{ a=b;b=k; k=a%b;
}
_______________;
}
main( )
{ int a,b;
scanf(”%d%d",&a,&b);
printf("%d",gcd(a,b));
}
4、将一个字符串中的小写字母变为大写字母,其他字符不变.
main()
{ char s[]= "Hello,2012!”,*q;
q=s;
while (*q)
{ if(*q〉=’a’ && *q〈='z')
_______________;
q++;
}
printf(”%s\n",s);
}
5、将有N个元素的数组a中的数据逐个前移,第一个元素移到最后面.如有数组:
1 2 3 4 5 6 7 8移动后的结果为: 2 3 4 5 6 7 8 1。
#define N 8
main()
{ int a[N]={1,2,3,4,5,6,7,8},i,t;
t=_______________;
for (i=0;i<N-1;i++)
_______________;
a[N-1]=t;
for(i=0;i<N;i++)
printf(”%d ",a[i]);
}
6。 下面程序打出如下图案: *
***
*****
*******
main( )
{ int i,j;
for(i=1;i<=4;i++)
{ for(j=1;j<40-i;j++)
printf(" ");
for(j=1;j〈=2*i-1;j++)
_______________;
printf("\n");
}
}
7. 以下程序中函数fun的功能是:统计结构体数组中所有成绩不及格的女同学(sex为’F’)的个数,存入变量n中,并做为函数值返回。
#define N 5
typedef struct stduent
{ int no;char nam[9]; char sex;float score;}STU;
int fun(STU s[])
{ int i,n=0;
for(i=0;i<N;i++)
if(______________________________) n++;
return n;
}
main()
{ STU a[N]={{1,"Kate",'F’,88},{2,"Bob”,’M',66},{3,”Tom”,’M’,77},
{4,"Betty",’F',51},{5,"Sarah”,’F’,57}};
int n;
n=fun(a); printf("n=%d\n”,n);
}
四、编程题(共3小题,每小题10分,共30分)
1、统计一个字符串中大写字母、小写字母、数字字符和其他字符的个数。
2、从键盘输入10个整数建立一个数组,请将该数组的最大值和位置打印出来,寻找最大值和位置的工作必须在子函数内完成,由主函数调用。
3、编程求一个字符串的长度,不得使用string。h中的库函数。函数原型如下,请完成该函数,并写出主函数予以测试。
int mystrlen(char *s);/*当s为“Hello”时,长度为5*/
11
展开阅读全文