1.以下程序的输出结果是( )。
main()
{ int n=4;
while(n--)
printf("%d",--n);
}
A.20 B.31 C.321 D.210
2.设有如下定义和执行语句,其输出结果为( )。
int a=2,b=3;
a=--b+1;
printf("%d %d",a,b);
A.3 2 B.4 2 C.5 2 D.0 3
3.有如下语句:
printf("%s,%5.3s\n","COMPUTER","COMPUTER");
执行语句后的最终结果为( )。
A.COMPUTER,CMP .B)COMPUTER, CO M.
C.COMPU, CM P.D)COMPU,COM .
4.语句printf("a\bre\'hi\'y\\\bou\n");的输出结果是( )。
A.a\bre\'hi\'y\\\bou B.a\bre\'hi\'y\bou
C.re'hi'you D.abre'hi'ybou
5.有以下程序
main()
{ char a1='M',a2='m';
printf("%c\n",(a1,a2));
}
以下叙述中,正确的是( )。
A.程序输出大写字母M B.程序输出小写字母m
C.格式说明符不足,编译出错 D.程序运行时产生出错信息
6.设a、b 和z 均为int 型变量,则执行语句a=(b=(c=10)+5)-5;后,a,b,c 的值是( )。
A.a=10 B.a=10 C.a=10 D.a=10
b=15b=10b=10b=5
c=10c=10c=15c=10
7.有以下程序,当运行时输入;a<回车>后,以下叙述正确的是( )。
#include <stdio.h>
main()
{ char c1='1',c2='2';
c1=getchar();c2=getchar();putchar(c1);putchar(c2);
}
A.变量c1 被赋予字符a,c2 被赋予回车符
B.程序将等待用户输入第二个字符
C.变量c1 被赋予字符a,c2 中仍是原有字符
D.变量c1 被赋予字符a,c2 中将无确定值
8.数字字符0 的ASCII 码值为48,若有以下程序,程序运行后的输出结果是( )。
main()
{ char a='1',b='2';
printf("%c.",b++);
printf("%d\n",b-a);
}
A.3.2 B.50.2 C.2.2 D.2.50
9.以下程序运行后的输出结果是( )。
main()
{ char a='a',b;
printf("%c,",++a);
printf("%d\n",b=a++);
}
A.b,b B.b,c C.a,b D.a,c
10.有以下程序,若运行时从键盘输入;6,5,65,66<回车>,则输出结果是( )。
main()
{ char a,b,c,d;
scanf("%c,%c,%d,%d",&a,&d,&c,&d);
printf("%c,%c,%c,%c\n",a,b,c,d);
}
A.6,5,A,B B.6,5,65,66 C.6,5,6,5 D.6,5,6,6
11.已定义ch 为字符型变量,以下赋值语句中,错误的是( )。
A.ch=' \ ' B.ch=62+3; C.ch=NULL; D.ch=' \ xaa';
13.下面程序段,( )(每行代码前面的数字表示行号)。
1 int a[3]={3∗0};
2 int i;
3 for(i=0;i<3;i++)scanf("%d",&a[i]);
4 for(i=1;i<3;i++)a[0]=a[0]+a[i];
5 printf("%d\n",a[0]);
A.第一行有错误 B.第五行有错误 C.第三行有错误 D.没有错误
14.下面程序段,( )。
1 float a[10]={0.0};
2 int i;
3 for(i=0;i<3;i++)scanf("%f",&a[i]);
4 for(i=1;i<3;i++)a[0]=a[0]+a[i];
5 printf("%d\n",a[0]);
A.没有错误 B.第一行有错误 C.第三行有错误 D.第五行有错误
15.下面程序段中有错误的行号是( )。
1 int a[3]={1};
2 int i;
3 scanf("%d",&a);
4 for(i=1;i<3;i++)a[0]=a[0]+a[i];
5 printf("a[0]=%d\n",a[0]);
A.1 B.4 C.5 D.3
16.下面程序段,( )。
1 int a[3]={0},i;
2 for(i=0;i<3;i++)scanf("%d",&a[i]);
3 for(i=1;i<4;i++)a[0]=a[0]+a[i];
4 printf("%d\n",a[0]);
A.没有错误 B.第一行有错误 C.第二行有错误 D.第三行有错误
17.以下程序的输出结果是( )。
main()
{ int i,x[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)printf("%d",x[i][2-i]);
}
A.1 5 9 B.1 4 7 C.3 5 7 D.3 6 9
18.以下关于数组的描述正确的是( )。
A.数组的大小是固定的,但可以有不同类型的数组元素
B.数组的大小是可变的,但所有数组元素的类型必须相同
C.数组的大小是固定的,但所有数组元素的类型必须相同
D.数组的大小是可变的,但可以有不同类型的数组元素
19.下面程序段运行时输出结果是( )。
char s[12]="A book";
printf("%d\n",strlen(s));
A.12 B.8 C.7 D.6
20.在执行int a[][3]={1,2,3,4,5,6};语句后,a[1][0]的值是( )。
A.4 B.1 C.2 D.5
二、程序填空题
1.函数sum(n)使用递归完成表达式的运算:sum(n)=1∗2+2∗3+n∗(n+1)。
int sum(n){
if(n==1)
return____①___;
else
return____②___;
}
2.编写函数,通过指针将一个字符串反向。如下程序的输出为:dcba。
void strReverse(char ∗s)
{ char c;
char∗p;
____①___;
while(∗p!='\0')
p++;
____②___;
while(s<=p)
{ c=∗s;
∗s=∗p;
s++;
∗p=c;
____③___;
}
}
main()
{ char a[10]="abcd";
strReverse(a);
printf("%s",a);}
3.打印以下杨辉三角形。(要求打印出5 行)
main()
{ int a[5][5],i,j ; 1
for(i=0;i<5;i++) 1 1
{____①___;____②___;} 1 2 1
for(i=2;i<5;i++ ) 1 3 3 1
for(j=1;j<i ;j++) 1 4 6 4 1
a[i][j]=____③___;
for(i=0;i<5;i++)
{ for( j=1;j<=i;j++)
printf("%5d",a[i][j]);
printf("\n");}
}
}
4.将一个数组中的元素按逆序重新存放。例如原来的顺序为8,5,7,4,1,要求改为1,
4,7,5,8。
#define N 7
void main()
{ int a[N]={12,9,16,5,7,2,1},k,s;
printf("\n 初始数组:\n");
for(k=0;k<N;k++)(www.xing528.com)
printf("%4d",a[k]);
for(k=0;k<____①___;k++)
{s=a[k];a[k]=____②___;____③___=s;}
printf("\n 交换后的数组:\n");
for(k=0;____④___;k++)
printf("%4d",a[k]);
}
5.有一行文字,要求删去某一个字符。此行文字和要删去的字符均由键盘输入,要删去的字符以字符形式输入(如输入a,表示要删去所有的a 字符)。
#include <stdio.h>
void main()
{ /∗str1 表示原来的一行文字,str2 表示删除指定字符后的文字∗/
char str1[100],str2[100];
char ch;
int i=0,k=0;
printf("please input an sentence:\n");
gets(str1);
scanf("%c",&ch);
for(i=0;____①___;i++)
if(str1[i]!=ch)
{str2[____②___]=str1[i];k++;}
str2[____③___]=' \0';
printf("\n%s\n",str2);
}
6.找出10 个字符串中的最大者。
#include <stdio.h>
#include <string.h>
#define N 10
void main()
{ char str[20],s[N][20];
int i;
for(i=0;i<N;i++)
gets(____①___);
strcpy(str,s[0]);
for(i=1;i<N;i++)
if(____②___>0) strcpy(str,s[i]);
printf("The longest string is:\n%s\n",str);
}
三、根据程序写结果
1.程序运行结果是________。
fun1(int a,int b)
{ int c;
a+=a;b+=b;c=fun2(a,b);
returnc∗c;
}
fun2(int a,int b)
{ int c;
c=a∗b%3;
returnc;
}
main()
{ int x=11,y=19;
printf("The final result is:%d\n",fun1(x,y));
}
2.程序运行结果是________。
int x;
main()
{ x=5;
cude();
printf("%d\n",x);
}
cude()
{ x=x∗x∗x;}
3.程序运行结果是________。
#include <stdio.h>
long fun(int n)
{ long s;
if(n==1‖n==2)
s=2;
else s=n+fun(n-1);
return s;
}
main()
{ printf("%1d\n",fun(4));}
4.程序运行结果是________。
main()
{ int i;
for(i=0;i<2;i++)
add();
}
add()
{ int x=0;
static int y=0;
printf("%d,%d\n",x,y);
x++;y=y+2;
}
5.程序运行结果是________。
main()
{ int k=4,m=1,p;
p=func(k,m);printf("%d,",p);
p=func(k,m);printf("%d\n",p);
}
func(int a,int b)
{ static int m=0,i=2;
i+=m+1;m=i+a+b;
return m;
}
6.程序运行结果是________。
#include <stdio.h>
struct st { int x;int ∗y;} ∗p ;
int dt[4]={10,20,30,40};
struct st aa[4]={50,&dt[0],60,&dt[1],70,&dt[2],80,&dt[3] };
void main()
{ p=aa;
printf("%d,",++p->x);
printf("%d,",(++p)->x);
printf("%d\n",++(∗p->y));
}
7.程序运行结果是________。
#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.x);
}
8.程序运行结果是________。
#include <stdio.h>
struct STU
{ char num[10];float score[3];};
void 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);
}
9.程序运行结果是________。
#include <stdio.h>
#include <stdlib.h>
struct NODE
{ int num;struct NODE ∗next;};
void main()
{ struct NODE ∗p,∗q,∗r;
p=(struct NODE∗)malloc(sizeof(struct NODE));
q=(struct NODE∗)malloc(sizeof(struct NODE));
r=(struct NODE∗)malloc(sizeof(struct NODE));
p->num=10;q->num=20;r->num=30;
p->next=q;q->next=r;
printf("%d\n",p->num+q->next->num);
}
10.程序运行结果是________。
#include <stdio.h>
typedef union student
{ char name[10];
long sno;
char sex;
float score[4];
} STU;
void main()
{ STU a[5];
printf("%d\n",sizeof(a));
}
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。