夯实c基础
区别:
图一的交换,(交换的是地址而不是两数)无法实现两数的交换。
题干 | 以下程序的输出结果为( c )。 void fun(int a, int b, int c){ c=a*b; } void main( ){ int c=6; fun(3,5,c); printf(”%d\n”,c); } A.3 B.5 C.6 D.15 |
题干 | 以下程序运行输出的数值结果为( c )。 void main(){ char ch[7]="12ab56"; int i=0,s=0; while(c[i]!=‘\0’){ if(ch[i]>=‘0’&&ch[i]<=‘9’) s=10*s+ch[i]-‘0’; i++; } printf("%d\n",s); } A.12 B.56 C.1256 D.68 |
题干 | 以下程序运行输出的数值结果为( a )。 void main(){ char ch[7]="12ab56"; int i,s=0; for(i=0;ch[i]>=‘0’&&ch[i]<=‘9’;i++) s=10*s+ch[i]-‘0’; printf("%d\n",s); } A.12 B.56 C.1256 D.68 |
题干 | 以下函数不能正确调用执行的是( b )。 A.double fun(int n){ return 1.0/(n*n); } void main(){ printf("%f",fun(2)); } B.void main(){ printf("%f",fun(2)); } double fun(int n){ return 1.0/(n*n); } C.void main(){ double fun(int); printf("%f",fun(2)); } double fun(int n){ return 1.0/(n*n); } D.double fun(int); void main(){ printf("%f",fun(2)); } double fun(int n){ return 1.0/(n*n); } |
题干 | 以下程序的输出结果为。c void main() { int x=3; if(x>=3) { int y=1; y=x*x; } printf("%d",y); } A.9 B.1 C.出错,不能运行 D.8 |
题干 | 以下程序运行显示( b )。 int a; void main() { printf("%d\n",a); } A.-858993460 B.0 C.随机值 D.出错 |
题干 | 以下程序运行输出的各行数值结果分别为。 void fun(int *p1,int *p2) { int *t; t=p1; p1=p2; p2=t; } void main( ) { int a=6,b=9; fun(&a,&b); printf("%d\n",a);//( a ) printf("%d\n",b);//( d ) } A.6 B.7 C.8 D.9 |
题干 | 以下程序的输出结果为( b )。 void main() { int a=1,b=3,c=5; int *p1=&a,*p2=&b,*p=&c; *p=(*p1)*(*p2): printf("%d",c); } A.2 B.3 C.4 D.5 |
题干 | 以下程序运行各行输出的数值结果分别为。 int a=2; void fun1(int x) { a+=x; } void fun2(int x) { a*=x; } void main() { a/=2; fun1(2);fun2(3); printf("%d\n",a);//( b ) a/=2; fun1(2);fun2(3); printf("%d\n",a);//( c ) } A.3 B.9 C.18 D.27 |
题干 | 以下程序段完全正确的是( c )。 A.int *p;scanf("%d",&p); B.int *p;scanf("%d",p); C.int k,*p=&k;scanf("%d",p); D.int k,*p;*p=&k;scanf("%d",p); |
题干 | 以下程序的输出结果为:( c )。 int func(int n){ if(n==1) return 1; else return(n*func(n-1)); } void main(){ int x; x=func(5); printf("%d",x); } A.5 B.24 C.120 D.720 |
题干 | 若有定义语句:double x,y,*px,*py;执行了px=&x;py=&y;之后,正确的输入语句是( a )。 A.scanf("%lf%lf",px,py); B.scanf("%f%f",&x,&y); C.scanf("%f%f",x,y); D.scanf("%lf%lf",&px,&py); |
题干 | 以下程序的输出结果为:( d )。 int f(int x){ if(x==0||x==1) return 3; else return x*x-f(x-2); } void main(){ printf("%d\n",f(4)); } A.12 B.13 C.14 D.15 |
题干 | 以下程序运行的输出结果为( d )。 int a=10,b=24; void main() { int a=13,c=5,y; y=a+b-c; printf("%d",y); } A.29 B.30 C.31 D.32 |
题干 | 以下语句,能正确执行的是( a )。 A.int a,*p=&a; B.int *p;*p=6; C.int *p;p=6; D.int *p;scanf("%d",p); 思考不能正确执行是因为啥? |
题干 | C语言中,定义局部变量时,若不特殊指定(如int a;),其前隐含有关键字( d );若想定义的局部变量,在函数结束时不消失保留原值,需要使用关键字( c ),并且该种类型变量若不初始化化,其默认的初始值为( b );若想定义的局部变量不在内存,而是在寄存器中,需要使用关键字( a )。 A.register B.0 C.static D.auto |
题干 | 以下程序的输出结果为( a )。 void fun(int a,int b){ int t; t=a;a=b;b=t; } void main(){ int c[5]={1,2,3,4,5},i; for(i=0;4>i;i++) fun(c[i],c[i+1]); for(i=0;5>i;i++) printf("%d",c[i]); } A.12345 B.54321 C.23451 D.51234 |
题干 | 若有定义语句:double a,*p=&a;以下叙述中错误的是( d )。 A.定义语句中,*p=&a把变量a的地址作为初值赋给指针变量p B.定义语句中的*号既是一个指针说明符,表示p为指针变量;也是一个指针运算符,表示取p指向的位置 C.定义语句中的p只能存放double类型变量的地址 D.定义语句中,*p=&a把变量a的地址作为初值赋给*p |
题干 | 以下程序各行的输出数值结果为。 void fun(int *p1,int *p2) { int t; t=*p1; *p1=*p2; *p2=t; } void main( ) { int a=6,b=9; int *p1,*p2; p1=&a; p2=&b; fun(p1,p2); printf("%d\n",a);//( d ) printf("%d\n",b);//( a ) } A.6 B.7 C.8 D.9 |
题干 | 以下选项和其它项不同的是( b )。 A.0 B.‘0’ C.NULL D.‘\0’ |
题干 | 以下程序的运行结果为:( c )。 void main(){ char a[80]="aaa",b[80]="bbbb",c[80]="cc",t[80]; if(strcmp(a,b)<0){ strcpy(t,a);strcpy(a,b);strcpy(b,t); } if(strcmp(a,c)<0){ strcpy(t,a);strcpy(a,c);strcpy(c,t); } if(strcmp(b,c)<0){ strcpy(t,b);strcpy(b,c);strcpy(c,t); } printf("%s %s %s\n",a,b,c); } A.aaa bbbb cc B.bbbb aaa cc C.cc bbbb aaa D.cc aaa bbbb |
题干 | 为了判断两个字符串s1和s2是否相等,应当使用( d )。 A.if(s1==s2) B.if(s1=s2) C.if(strcpy(s1,s2)) D.if(strcmp(s1,s2)==0) |
题干 | 一个源文件中,外部变量和局部变量同名,则在二者共同作用范围内,( b )。 A.外部变量起作用,内部变量不起作用 B.内部变量起作用,外部变量不起作用 C.二者同时起作用 D.二者同时不起作用 |
题干 | 对以下函数的声明语句错误的是( a )。 int fun(int x,int y){ returnx-y; } A.int fun(int x,y); B.int fun(int,int); C.int fun(int a,int b); D.int fun(int x,int y); |
题干 | 以下程序输出的结果为。 void main() { printf("%d",sizeof(int));//( c ) printf("%d",sizeof(char));//( a ) printf("%d",sizeof(double));//( d ) printf("%d",sizeof(float));//( c ) } A.1 B.2 C.4 D.8 |
题干 | 设a=3,b=4,表达式a>b?a:b的值是( d )。 A.1 B.2 C.3 D.4 |
题干 | 为实现字符串/字符数组s2整体赋值到s1,应当使用( b )。 A.s1=s2 B.strcpy(s1,s2) C.strcat(s1,s2) D.strcmp(s1,s2) |
题干 | 以下程序程的输出结果为( a )。 #include "stdio.h" void main() { int m=1,n=2,*p=&m,*q=&n,*r; r=p;p=q;q=r; printf("%d%d%d%d",m,n,*p,*q); } A.1221 B.2112 C.1122 D.2211 |
题干 | 以下程序运行输出的四个数值结果分别为( c )、( b )、( a )、( d )。 int fun(int n) { static int a=1; a=a*n; return a; } void main() { int i; for(i=1;i<=4;i++) printf("%d\n",fun(i)); } A.6 B.2 C.1 D.24 |
题干 | 有以下程序试图通过指针p为变量n读入数据并输出,但程序有多处错误,以下语句正确的是( a )。 #include "stdio.h" void main() { int n,*p=NULL; *p=&n; printf("Input n:");scanf("%d",&p); printf("Output n:");printf("%d\n",p); } A.int n,*p=NULL; B.*p=&n; C.printf("Input n:");scanf("%d",&p); D.printf("Output n:");printf("%d\n",p); |
题干 | 以下关于地址和指针的叙述中正确的是( a )。 A.可以取变量的地址赋值给同类型的指针变量 B.可以取常量的地址赋值给同类型的指针变量 C.可以取一个指针变量的地址赋给本指针变量,这样就使得指针变量指向自身 D.所有指针变量如果未赋初值,则自动赋空值NULL |
题干 | 以下程序运行输出的各行数值结果为。 int fun(int g){ if(g==1||g==2) return 1; else return (fun(g-1)+fun(g-2)); } void main(){ printf("%d\n",fun(4));//( b ) } A.8 B.3 C.2 D.89 |
题干 | 以下程序的运行结果为( c )。 void fun(char *c,char d) { *c=*c+1; d=d+1; } void main() { char b=‘a’,a=‘A’; fun(&b,a): printf("%c%c",b,a); } A.ba B.BA C.bA D.Ba |
题干 | 以下全局变量定义,不能正确访问的是( b )。 A. int y=6; void main() { printf("%d",y); } B. void main() { printf("%d",y); } int y=6; C. extern y; void main() { printf("%d",y); } int y=6; D. void main() { extern y; printf("%d",y); } int y=6; |
题干 | 以下程序的输出数值结果为。 void fun(int x,int *y) { x=x+2; *y=*y+2; } void main() { int a=6,b=6; fun(a,&b); printf("%d\n",a);//( a ) printf("%d\n",b);//( b ) } A.6 B.8 C.10 D.12 |
题干 | 以下程序的输出结果为( c )。 void fun(int a,int b,int c){ a=b;b=c;c=a; } void main(){ int a=1,b=2,c=3; fun(a,b,c); printf("%d%d%d",a,b,c); } A.231 B.321 C.123 D.312 |
题干 | 以下程序的运行结果为:( b )。 void main(){ char a[80]="aaa",b[80]="bbbb",c[80]="cc",t[80]; if(strlen(b)>strlen(a)){ strcpy(t,a);strcpy(a,b);strcpy(b,t); } if(strlen(c)>strlen(a)){ strcpy(t,a);strcpy(a,c);strcpy(c,t); } if(strlen(c)>strlen(b)){ strcpy(t,b);strcpy(b,c);strcpy(c,t); } printf("%s %s %s\n",a,b,c); } A.aaa bbbb cc B.bbbb aaa cc C.cc bbbb aaa D.cc aaa bbbb |