哪位大侠能帮我做做这些题目!
一、单选题(共60题,共60.0分)1、执行以下程序后,a的值为( )。
int *p,a=10,b=1;
p=&a;a=*p+b;本题(1分)
A:12
B:编译出错
C:10
D:11
A B C D
2、有以下程序:
main()
{int a=1,b=0;
switch(a)
{ case 1:switch(b)
{ case 0:printf(“****”);
case 1:printf(“####”);break ; }
case 2: printf(“$$$$”);break ; }
}
该程序的输出结果是( )。本题(1分)
A:****
B:****$$$$
C:****####$$$$
D:####$$$$
A B C D
3、若有以下定义:int x[4][3];int(*p)[3]=x;
则能够正确表示数组元素x[2][1]的表达式是( )。本题(1分)
A:*((*p+2)[1])
B:(*p+2)+1
C:*(*p+7)
D:*(*p+2)+1)
A B C D
4、设有程序段char s [ ] = "china"; char *p ; p = s ;则下列叙述正确的是( )。本题(1分)
A:s和p完全相同
B:数组s中的内容和指针变量p中的内容相等
C:s数组长度和p所指向的字符串长度相等
D:*p与s[0]相等
A B C D
5、函数f定义如下,执行语句“sum=f(4)+f(2);”后,sum的值应为( )。
int f(int m)
{ static int i=0; int s=0;
for(;i<=m;i++) s+=i; return s;
}本题(1分)
A:13
B:16
C:10
D:8
A B C D
6、为表示“a和b都不等于0”,应使用的C语言表达式是( )。本题(1分)
A:(a!=0) || (b!=0)
B:a || b
C:!(a=0)&&(b!=0)
D:a && b
A B C D
7、在C语言中,下列选项属于合法的长整型常数的是( )。本题(1分)
A:314L
B:3.14159e3
C:0.0314159
D:31415900
A B C D
8、对两个数组a和b进行如下初始化
char a[ ]="ABCDEF";
char b[ ]={’A’,’B’,’C’,’D’,’E’,’F’};则以下叙述正确的是( )。本题(1分)
A:a和b数组完全相同
B:a与b数组长度相同
C:a和b数组中都存放字符串
D:a数组比b数组长度长
A B C D
9、以下程序执行后a.u.y的值应输出为( )。
#include "stdio.h"
union myun
{struct
{int x,y,z;}u;
int k;
}a;
void main()
{
a.u.x=4;a.u.y=5;a.u.z=6;
a.k=0;
printf("%d\n",a.u.y);
}本题(1分)
A:4
B:5
C:6
D:0
A B C D
10、下列程序的运行结果是( )。
main()
{int a=4,y;
y=fn(a,++a);
printf(“%d”,y);}
int fn(x,c)
{int b;
if(x<c)b=1;
else if(x==c)b=0;
else b=-1 ;
return(b);
}本题(1分)
A:4
B:-1
C:1
D:0
A B C D
11、完成将文件指针fp重新指向文件开头位置的函数是( )。本题(1分)
A:feof(fp)
B:ferror(fp)
C:fseek(fp)
D:rewind(fp)
A B C D
12、以下程序的输出结果是( )。
main()
{
int x=1,y=3;
printf("%d,",x++);
{ int x=0;x+=y*2;
printf("%d,%d, ",x,y);
}
printf("%d,%d\n",x,y);
}本题(1分)
A:1,6,3,1,3
B:1,6,3,6,3
C:1,6,3,2,3
D:1,7,3,2,3
A B C D
13、有以下程序:
#include <stdio.h>
void fun(char *fname,char *st)
{ FILE *myf;int i;
myf=fopen(fname,“r”);
for(i=0;i<strlen(st);i++)fputc(st[i],myf);
fclose(myf);
}
main()
{ fun(“test.t”,“new world”);fun(“test.t”,“hello,”);}
执行该程序后,文件test.t中的内容是( )。本题(1分)
A:hello,
B:new worldhello,
C:new world
D:文件内容无变化
A B C D
14、与 y=(x>0?1:x<0?-1:0);的功能相同的if语句是( )。本题(1分)
A:if (x>0)y=1;
else if(x<0)y=-1;
else y=0;
B:if(x)
if(x>0)y=1;
else if(x<0)y=-1;
C:y=-1
if(x)
if(x>0)y=1;
else if(x==0)y=0;
else y=-1;
D:y=0;
if(x>=0)
if(x>0)y=1;
else y=-1;
A B C D
15、已知字符’c ’的ASCII码为 99 ,语句printf ("%d,%c",’c’, ’c’+1 ) ;的输出为( )。本题(1分)
A:99,c
B:99,100
C:99,d
D:语句不合法
A B C D
16、C语言规定,函数返回值的类型是由( )。本题(1分)
A:return语句中的表达式类型所决定
B:调用该函数时的主调函数类型所决定
C:调用该函数时系统临时决定
D:在定义该函数时所指定的函数类型所决定
A B C D
17、有如下程序:int x=-20; printf("%d\n",~x);,其输出结果将是( )。本题(1分)
A:19
B:20
C:21
D:-1
A B C D
18、若有int i=-2,k=i--;的定义,以下语句段执行后的输出结果是( )。
if(k=-3) printf(“####”);
else printf(“****”);本题(1分)
A:####
B:****
C:####****
D:有语法错误 ,不能执行
A B C D
19、若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为( )。本题(1分)
A:0
B:1
C:-1
D:非0值
A B C D
20、下列程序的运行结果是( )。
main()
{ int y=10;
do { --y ;} while(y);
printf(“%d\n”,y- -);}本题(1分)
A:-1
B:-2
C:9
D:0
A B C D
21、函数f定义如下,执行语句“m=f(5);”后,m的值应为( )。
int f(int k)
{ if(k==0||k==1) return 1;
else return f(k-1)+f(k-2);
}本题(1分)
A:3
B:8
C:5
D:13
A B C D
22、以下程序运行后,如果从键盘上输入ABCDE<回车>,则输出结果为( )。
#include "stdio.h"
#include "string.h"
func (char str [ ])
{ int num =0;
while (*(str +num )!=’\0’)num ++;
return(num );
}
main()
{ char str [10],*p=str ;
gets(p); printf("%d\n",func(p));
}本题(1分)
A:8
B:7
C:6
D:5
A B C D
23、以下程序运行后的输出结果是( )。
float fun(int x,int y)
{ return(x+y);}
main()
{ int a=3,b=4,c=8;
printf("%5.0f\n",fun((int)fun(a+c,b),a-c));
}本题(1分)
A:编译出错
B:10
C:21
D:10.0
A B C D
24、设x,y为int变量,则执行下列语句后y的值是( )。
x=0;y=1;
do{y+=x;
x--;
} while (y++>0);本题(1分)
A:1
B:2
C:-1
D:0
A B C D
25、以下程序的输出结果是( )。
void main()
{
char *p[10]={"abc","aabdfg","dcdbe","abbd","cd"};
printf("%d\n",strlen(p[4]));
}本题(1分)
A:2
B:3
C:4
D:编译出错
A B C D
26、若有以下定义:char s[10]={’a’,’b’,’c’,’0’, ’2’,’\x32’ ,’\0’,’\123’};执行语句printf(“%d”,strlen(s));的结果是( )。本题(1分)
A:3
B:6
C:8
D:9
A B C D
27、以下程序是关于文件的读写操作,屏幕将输出( )。
#include <stdio.h>
void main()
{
FILE *fp;int i,a[4]={1,2,3,4},b;
fp=fopen("data.dat","wb");
for(i=0;i<4;i++)fwrite(&a[i],sizeof(int),1,fp);
fclose(fp);
fp=fopen("data.dat","rb");
fseek(fp,-2L*sizeof(int),SEEK_END);
fread(&b,sizeof(int),1,fp);
fclose(fp);
printf("%d\n",b);
}本题(1分)
A:1
B:2
C:3
D:4
A B C D
28、下列程序执行后的输出结果是( )。
void func(int *a,int b[])
{ b[0]=*a+6; }
main()
{ int a,b[5]={0};
a=0; b[0]=3;
func(&a,b); printf("%d\n",b[0]);
}本题(1分)
A:6
B:7
C:8
D:9
A B C D
29、字符0的ASCII码的十进制数为48,且数组的第0个元素在低位,则以下程序的执行结果是( )。
#include "stdio.h"
main()
{ union
{ int i[4];
long k;
char c[6];
}a,*s=&a ;
s->i[0]=0x36;
s->i[1]=0x35;
printf(“%c\n”,s->c[0]);
}本题(1分)
A:5
B:3
C:6
D:9
A B C D
30、以下程序运行后向文件输出的结果是( )。
#include "stdio.h"
void main()
{
FILE *fp;
fp=fopen("test.txt","wb");
fprintf(fp,"%d%.1f,%c%c",5,238.41,’B’,’h’);
fclose(fp);
}本题(1分)
A:5 238.41 B h
B:5238.4,Bh
C:5,238.4,B,h
D:5238.41Bh
A B C D
31、以下程序的输出结果是( )。
#include <stdio.h>
#define H1 5
#define H2 H1+1
#define H3 H2*H2/2
void main()
{
int s=0,k=H3;
while(k--)s++;
printf("%d\n",s);
}本题(1分)
A:18
B:19
C:10
D:宏定义有错,不能编译
A B C D
32、以下程序的输出结果是( )。
main( )
{ char a=’A’;
printf("%d,%o,%x\n",a,a,a);
}本题(1分)
A:65,0101,0x41
B:65,65,65
C:65,0x101,041
D:65,101,41
A B C D
33、若i为整型变量,则以下循环执行的次数是( )。
for (i=2;i= =0;) prinf("%d",i- -);本题(1分)
A:无限次
B:0次
C:1次
D:2次
A B C D
34、执行以下程序的输出结果是( )。
main()
{
int a=5,b=0,c=0;
if(a=b+c)printf("***\n");
else printf("$$$\n");
}本题(1分)
A:有语法错不能通过编译
B:可以通过编译但不能通过连接
C:输出***
D:输出$$$
A B C D
35、以下程序的输出结果为( )。
#include <stdio.h>
main()
{ int i=0,a=0;
while(i<20)
{ for( ; ; )
{ if((i%10)==0) break;
else i--; }
i+=11; a+=i;
}
printf("%d\n",a);
}本题(1分)
A:21
B:32
C:33
D:11
A B C D
36、若x、b、m、n均为int型变量,执行下面语句后b的值为( )。
m=20;n=6;
x=(--m==n++)?--m:++n;
b=n++;本题(1分)
A:6
B:7
C:8
D:9
A B C D
37、设有以下程序:
int fun(char *s)
{ int n=0;
while(*s){n++;s++;}
return n;}
main()
{char y[ ]=“this_is_an_example.”;
printf(“%d\n”,fun(&y[5]));
}
该程序的输出结果是( )。本题(1分)
A:12
B:13
C:14
D:16
A B C D
38、以下程序经过fun()调用,将输出( )。
void fun( int **s,int p[3][3])
{ **s=p[1][2]; }
void main()
{
int a[3][3]={2,4,6,8,10,12,14,16},*p;
p=(int *)malloc(sizeof(int));
fun(&p,a);
printf("%d\n",*p);
}本题(1分)
A:2
B:10
C:12
D:14
A B C D
39、若有运算符<<,sizeof,^,&=,&&,% ,则它们按优先级由高至低的排列次序正确的是( )。本题(1分)
A:sizeof,%,&&,&= , <<, ^
B:sizeof,%,<<, ^,&&,&=
C:%,^,<<,sizeof,&&, &=
D:<<,%,^,&=,&&,sizeof
A B C D
40、有以下程序:
main( )
{
int y=2014;
printf(“y=%8d”,y);
printf(“y=%+08d\n”,y);
}
该程序的运行结果是( )。本题(1分)
A:y= 2014y=00002014
B:y= 2014y=+0002014
C:y=2014y=+0002014
D:y= 2014y=2014
A B C D
41、设有下列定义:
static int x,*p=&x,*q;
scanf(“%d,%d”,p,q);
若输入5,6,则x的值为( )。本题(1分)
A:5
B:6
C:0
D:无法确定
A B C D
42、设 a=6, b=5, c=7, d=8, m=2, n=2, 执行(m=a>b)||(n=c>d) 后m,n的值为( )。本题(1分)
A:2,2
B:2,0
C:1,2
D:1,0
A B C D
43、下列程序的功能是( )。
int fun(char *a)
{ int b=0;
while(*a) {b++;a++;}
{return b;}
}本题(1分)
A:比较两个字符串的大小
B:字符串的复制
C:计算字符串的长度
D:字符串的连接
A B C D
44、C语言中,switch语句括号内的变量类型( )。本题(1分)
A:只能为整型
B:只能为整型,字符型,枚举型
C:只能为整型和字符型
D:不能为float类型
A B C D
45、下列程序的执行结果是( )。
main()
{ char a[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5;
printf(“%d”,*++p);}本题(1分)
A:非法
B:a[4]的地址
C:3
D:4
A B C D
46、以下程序的输出结果是( )。
#include <stdio.h>
void func(char **m)
{
++*m;
printf("%s\n",*m);
}
void main()
{
static char *a[]={"first","second","three"};
char **n;
n=a;
func(n);
}本题(1分)
A:first
B:irst
C:second
D:其他
A B C D
47、以下程序运行后的输出结果是( )。
struct STU
{ char num[10]; float score[3]; };
main()
{
struct STU s[3]={{"20021",90,95,85},
{"20022",95,80,75},
{ "20023",100,95,90},
},*p=s;
int i; float sum=0;
for(i=0;i<3;i++)
sum=sum+p->score[i];
printf("%6.2f\n",sum);
}本题(1分)
A:260.00
B:270.00
C:280.00
D:285.00
A B C D
48、以下程序的输出结果是( )。
#include "stdio.h"
void main()
{
int a = 2, b = 3, c = 4;
printf("%d", c>b>a);
}本题(1分)
A:2
B:1
C:0
D:3
A B C D
49、阅读下面程序,该程序段的功能是( )。
#include <stdio.h>
main()
{ int c[ ]={23,1,56,234,7,0,34},i,j,t;
for(i=1;i<7;i++)
{ t=c[i];j=i-1;
while(j>=0&&t<c[j]) { c[j+1]=c[j];j- - ;}
c[j+1]=t;}
for(i=0;i<7;i++)printf(“%d ”,c[i] );
putchar(’\n’);
}本题(1分)
A:对数组元素的升序排列
B:对数组元素的降序排列
C:对数组元素的倒序排列
D:对数组元素的随机排列
A B C D
50、在16位机环境下,以下程序的运行结果是( )。
#include "stdio.h"
main()
{ struct date
{ int year,month,day;
char yy,mm,dd;}today;
printf("%d\n",sizeof(struct date));
}本题(1分)
A:6
B:8
C:9
D:12
A B C D
51、若整型变量a,i已正确定义,且i已正确赋值,下列语句合法的是( )。本题(1分)
A:a==1
B:a--;
C:a=a++=3;
D:a=int(i);
A B C D
52、有以下程序,其中x、y为整型变量;
for(x=0,y=0;(x<=2)&&(y=1);x++,y--);
printf(“x=%d,y=%d”,x,y);
该程序的输出结果是( )。本题(1分)
A:x=2,y=0
B:x=1,y=0
C:x=1,y=1
D:x=3,y=0
A B C D
53、下列程序的输出结果是( )。
#include〈stdio.h〉
int x;
int p(int *y)
{ ++*y;
return x-1;
}
void main()
{
int y;
y=p(&x);
printf("(%d,%d)",x,y);
}本题(1分)
A:(-1,0)
B:(1,-1)
C:(1,0)
D:出错
A B C D
54、下列程序段的输出结果是( )。
int *p, *q,k=2,j=4;
p=&j;q=&k;p=q;(*p)++;
printf("%d",*q);本题(1分)
A:2
B:3
C:4
D:5
A B C D
55、有如下程序段:
struct person
{ char name[10];
int age;
}class[10]={"LiMing",29,"ZhangHong",21,"WangFang",22};
已知A的ascii码值为65,下述表达式的值为72的是( )。本题(1分)
A:class[0]->age + class[1]->age+ class[2]->age
B:class[1].name[5]
C:person[1].name[5]
D:class->name[5]
A B C D
56、下面程序运行后,关于a、b、c的值应输出为( )。
#include "stdio.h"
main()
{
int a=1, b=2, c=2,t;
while (a<b<c){t=a;a=b;b=t;c--;}
printf("%d,%d,%d",a,b,c);
}本题(1分)
A:1,2,0
B:2,1,0
C:1,2,1
D:2,1,1
A B C D
57、执行语句“a=b=3; printf("%d,%d\n",a<<3,b>>3);” 后的输出结果为( )。本题(1分)
A:24,0
B:1
C:false,true
D:true,false
A B C D
58、下列转义字符不正确的是( )。本题(1分)
A:’\\’
B:’\ab’
C:’\083’
D:’\0’
A B C D
59、以下程序的输出结果是( )。
main()
{ int n=10;
while(n>7){ n--; printf("%d",n);}
}本题(1分)
A:876
B:987
C:9876
D:8765
A B C D
60、以下程序的输出结果是( )。
#include "stdio.h"
void fun(int *p)
{
int a=10;
p=&a;
++a;
}
void main()
{
int a=5;
fun(&a);
printf("%d\n",a);
}本题(1分)
A:5
B:6
C:10
D:11
A B C D
二、多选题(共20题,共40.0分)
1、要求函数的功能是在一维数组a中查找x值。若找到,则返回所在的下标值;否则,返回0。设数据放在数组元素的a[1]到a[n]中。在以下给出的函数中,不能正确执行此功能的有( )。本题(2分)
A:funa(int *a, int n, int x)
{
*a = x;
while(a[n] != x) n--;
return n;
}
B:funb(int *a, int n, int x)
{
int k;
for(k = 1; k <= n; k++)
if(a[k] == x) return k;
return 0;
}
C:func(int a[], int n, int x)
{
int *k;
a[0] = x; k = a+n;
while(*k != x) k--;
return k - n;
}
D:fund(int a[], int n, int x)
{
int k = 0;
do
{k++;
}while((k < n+1)&&(a[k]!=x));
if((k < n+1)&&a[k] == x)) return k;
else return 0;
}
A B C D
2、设有以下说明语句:
#define STU struct stu
STU
{ int a ;
float b ;
};
则下列叙述正确的有( )。本题(2分)
A:在程序中,STU 与struct stu完全等效
B:STU是一个代表结构体类型的符号常量
C:可以直接用STU定义结构体变量,如STU stu1,stu2;
D:a和b都是结构体成员名
A B C D
3、以下宏定义存在二义性的有( )。本题(2分)
A:#define SQR(x) (x*x)
B:#define M(a, b) (a)>(b)?(a):(b)
C:#define ADD(a,b) (a+b)
D:#define RND8(x) ((((x) + 7)/8)*8)
A B C D
4、下列选项中不能将变量n清零的表达式有( )。本题(2分)
A:n=n&~n
B:n=n&0
C:n=n|0
D:n=n|n
A B C D
5、若有以下说明:int a[5][9];则下列选项中对数组元素a[i][j]的引用正确的有( )。(0<=i<4,0<=j<9)本题(2分)
A:*(&a[0][0]+9*i+j)
B:*(a+i)(j)
C:(*(a+i)+j)
D:*(a[i]+j)
A B C D
6、下列有关函数调用的说法正确的有( )。本题(2分)
A:若用值传递方式,则形式参数不予分配内存
B:实际参数和形式参数不可以同名
C:主调函数和被调用函数可以不在同一个文件中
D:函数间传送数据可以使用外部全局变量
A B C D
7、下列描述正确的有( )。本题(2分)
A:不论在主函数还是自定义函数中,只要说明了变量,就要为其分配存贮单元
B:在定义函数时,可以不指定形参的类型
C:形参和实参之间可以是值传递
D:数组名可以作为参数进行传递
A B C D
8、设有定义语句: int x[6]={2,4,6,8,5,7},*p=x,i;
要求依次输出x数组中6个元素中的值,下列选项中能完成此操作的语句有( )。本题(2分)
A:for(i=0;i<6;i++)printf(“%2d”,*(p++));
B:for(i=0;i<6;i++)printf(“%2d”,*(p+i));
C:for(i=0;i<6;i++)printf(“%2d”,*p++);
D:for(i=0;i<6;i++)printf(“%2d”,(*p)++);
A B C D
9、若有定义:char *st=“how are you!”;下面程序中用法错误的有( )。本题(2分)
A:char a[11],*p;strcpy(p=a+1,&st[4]);
B:char a[11];strcpy(++a,st);
C:char a[11];strcpy(a,st);
D:char a[ ],*p;strcpy(p=&a[1],st+2);
A B C D
10、若变量已正确定义,要求程序段完成求5!的计算,下列选项中能完成此操作的程序段有( )。本题(2分)
A:for(i=1,p=1;i<=5;i++)p*=i;
B:for(i=1;i<=5;i++){p=1;p*=i;}
C:i=1;p=1;while(i<=5) p*=i;i++;
D:i=1;p=1;do { p*=i;i++;} while(i<=5);
A B C D
11、当把下列四个表达式用作if语句的控制表达式时,含义相同的选项有( )。(假设k>0)本题(2分)
A:k%2
B:k%2==0
C:(k%2)!=0
D:k%2==1
A B C D
12、下列叙述不正确的有( )。本题(2分)
A:函数可以嵌套定义,但不能嵌套调用
B:函数可以嵌套调用,也可以嵌套定义
C:函数不可以嵌套定义,但可以递归调用
D:函数可以嵌套调用,但不能嵌套定义
A B C D
13、有下列结构体,对该结构体变量stu的成员项引用正确的选项包括( )。
struct student
{ int m;
float n;
} stu ,*p;本题(2分)
A:stu.n
B:p->m
C:(*p).m
D:p.stu.n
A B C D
14、下列选项中会构成死循环的有( )。本题(2分)
A:int i=100;
while(1)
{ i=i+1;
(i>100)break; }
B:for(;;);
C:int k=10000;
do{ k++; } while(k>10000);
D:int s=1;
while(s=1) --s;
A B C D
15、下列选项中与语句if(a>b) if(c>d)x = 1;else x = 2;不等价的有( )。本题(2分)
A:if(a>b){if(c>d) x = 1;else x = 2;}
B:if(a>b){if(c>d) x = 1;} else x = 2;
C:if((a>b) && (c>d)) x = 1;else x = 2;
D:if(a< =b) x = 2;else if (c>d) x = 1;
A B C D
16、若有如下说明int a[]={1,2,3,4,5,6,7,8,9,0},i;
且0=<i<10,则下列选项中能正确表示数组a的元素地址的有( )。本题(2分)
A:&a[1]
B:a+i
C:&a[10]
D:a[i]
A B C D
17、已有定义 int a=-2;和输出语句printf(“%8u”,a);下列叙述不正确的有( )。本题(2分)
A:整型变量的输出形式只有%d一种
B:%u是格式符的一种,它可以适用于任何一种类型的数据
C:%u是格式符的一种,其变量的值按无符号整数形式输出,但%8u是错误的
D:%8u不是错误的格式符,其中数字8规定了输出字段的宽度
A B C D
18、下面叙述不正确的有( )。本题(2分)
A:调用函数时的实参只能是有确定值的变量
B:return语句返回值可以是变量,常量或有确定值的表达式
C:C语言中,函数调用时实参变量和形参变量间的参数传递方式是值传递
D:实参和形参若类型不匹配,编译时将报错
A B C D
19、下列选项中,均属于C语言关键字的有( )。本题(2分)
A:define IF type
B:goto char typedef
C:void case static
D:while go pow
A B C D
20、以下关于枚举类型的用法中,正确的有( )。本题(2分)
A:enum a {1,2,3};
B:enum a {a,b,c};
C:enum a {a,b,c}d;
D:enum a {a,b,c}a;
A B C D