一、选择题
1.以下叙述中不正确的是( )。
A.在C 程序运算符中,逗号运算符优先级最低
B.C 程序中,A 和a 代表两个不同的变量
C.C 程序中,整数和实数在内存中存放形式相同
D.在C 程序中,%是只能用于整数运算的运算符
A.字母、数字、划线 B.中划线、字母
C.字母、逗号 D.下划线、中划线
3.在下面几组数据类型中,全为最常用的基本数据类型的是( )。
C.数组、结构体、共用体 D.指针、字符型、空类型
4.设有定义:int k=0;,以下选项的四个表达式中,k 的值与其他三个不相同的是( )。
A.k++ B.k+=1 C.++k D.k+1
5.若变量c 为char 类型,能正确判断出c 为小写字母的表达式是( )。
A.'a'<=c<='z' B.(c>='a')‖(c<='z')
C.('a'<=c)and('z'>=c) D.(c>='a')&&(c<='z')
6.下列不正确的转义字符是( )。
A.' \' B.' \ " C.'074' D.'\0'
7.以下不合法的字符常量是( )。
A.'\ 018' B.' \ " C.' \' D.' \xcc'
8.以下叙述正确的是( )。
A.do-while 语句构成的循环不能用其他语句构成的循环来表示
B.do-while 语句构成的循环只能用break 语句退出
C.用do-while 语句构成的循环,在while 后的表达式为非零时结束循环
D.用do-while 语句构成的循环,在while 后的表达式为零时结束循环
9.以下程序的执行结果是( )。
main()
{ int x=32;
do{ printf("%d",x--);}while(!x);
}
A.不输出任何内容 B.陷入死循环
C.23 D.32
10.以下程序中,while 循环的循环次数是( )。
main()
{ int i=0;
while(i<10)
{ if(i<1) continue;
if(i==5) break;
i++;
}
}
A.1 B.6
C.10 D.死循环,不确定次数
11.以下程序执行后的输出结果是( )。
main()
{ int i;
for(i=1;i<=40;i++)
{ if(i++%5==0)
if(++i%8==0)printf("%d",i)
}
printf("\n");
}
A.24 B.5 C.40 D.32
12.以下程序段的执行结果是( )。
int a,y;
a=10;y=0;
do{ a+=2;y+=a;
printf("a=%d y=%d\n",a,y);
if(y>20) break;
}while(a=14);
A.a=12 y=12 B.a=12 y=12
a=14 y=16 a=16 y=28
a=16 y=20
C.a=12 y=12 D.a=12 y=12
a=14 y=26 a=14 y=26
13.以下程序的输出结果是( )。
main()
{ int n=9;
while(n>6){n--;printf("%d",n);}
}
A.876 B.987 C.8765 D.9897
14.以下程序段while 循环执行的次数是( )。
int k=0
while(k=1)k++;
A.无限次 B.14 C.不确定 D.0
15.若有如下程序段,其中s,a,b,c 均已定义为整型变量,且a,c 均已赋值(c 大于0)s=a;for(b=1;b<=c;b++) s=s+1;,则与上述程序段功能等价的赋值语句是( )。
A.s=a+b; B.s=a+c; C.s=s+c; D.s=b+c;
A.int a[2][3]={0};
B.int a[2][3]={{1,2},{3,4},{5,6}};
C.int a[][3]={{1,2},{0}};
D.int a[][3]={1,2,3,4,5,6};
17.若有以下定义,则b 的值是( )。
int a[10]={1,2,3,4,5,6,7,8,9,10},b=a[5];
A.5 B.6 C.7 D.8
18.若定义一个名为s 且初值为“123”的字符数组,则下列定义错误的是( )。
A.char s[]={'1','2','3','\0'}; B.char s[]={"123"};
C.char s[]={"123\n"}; D.char s[4]={'1','2','3'};
19.以下定义语句中,错误的是( )。
A.int a[]={1,2}; B.char ∗a[3];
C.char s[10]="test"; D.int n=5,a[n];
20.若有初始化语句:int a[3][4]={0};,则下面正确的叙述是( )。
A.只有元素a[0][0]可得到初值0
B.此初始化语句不正确
C.数组a 中各元素都可得到初值,但其值不一定为0
D.数组a 中每个元素均可得到初值0
21.设有说明int(∗ptr)[M];,其中ptr 是( )。
A.M 个指向整型变量的指针
B.指向M 个整型变量的函数指针
C.一个指向具有M 个整型元素的一维数组的指针
D.具有M 个指针元素的一维指针数组,每个元素都只能指向整型量
22.在说明语句int ∗f[ ];中,标识符代表的是( )。
A.一个用于指向整型数据的指针变量 B.一个指针型数组名
C.一个用于指向函数的指针变量 D.一个返回值为指针型的函数名
23.若int x,∗pb;,则正确的赋值表达式是( )。
A.pb=&x B.pb=x C.∗pb=&x D.∗pb=∗x
24.有如下程序段
int ∗p,a=10,b=1;
p=&a;a=∗p+b;
执行该程序段后,a 的值为( )。
A.12 B.11 C.10 D.编译出错
25.若有以下定义和语句:
double r=99,∗p=&r;
∗p=r;
则以下正确的叙述是( )。
A.以上两处的∗p 含义相同,都说明给指针变量p 赋值
B.在“double r=99,∗p=&r;”中,把r 的地址赋给了p 所指的存储单元
C.语句“∗p=r;”把变量r 的值赋给指针变量p
D.语句“∗p=r;”取变量r 的值放回r 中
二、程序填空题
1.输出行、列号之和为3 的数组元素。
main()
{ char ss[4][3]={'A','a','f','c','B','d','e','b','C','g','f','D'};
int x,y,z;
for(x=0;____①___;x++)
for(y=0;____②___;y++)
{ z=x+y;
if(____③___)printf("%c\n",ss[x][y]);
}
}
2.下面程序可求出1~100 的自然数中所有的完数(因子和等于该数本身的数),请填空。
main()
{ int m,n,s;
for(m=2;m<100;m++)
{ ___①___;(www.xing528.com)
for(n=1;n<=m/2;n++)
if(____②___) s+=n;
if(____③___) printf("%d\n",m);} }
3.下面的程序是输出数组中最大元素的下标(p 表示最大元素的下标)。
void main()
{
;
int s[]={1,-3,0,-9,8,5,-20,3};
for(i=0,p=0;i<8;i++)
if(s[i]>s[p]);
;
}
4.输入20 个数,输出它们的平均值,输出与平均值之差的绝对值最小的数组元素。
#include <stdio.h>
void main()
{
float a[20],pjz=0,s,t;
int i,k;
for(i=0;i<20;i++)
{
scanf("%f",&a[i]);
pjz+=________;
}
pjz/=20;
s=fabs(a[0]-pjz);
t=a[0];
for(i=1;i<20;i++)
if( fabs(a[i]-pjz)<s)
{________;
t=a[i];
}
________;
}
三、根据程序写结果
1.以下程序的运行结果是________。
#include <stdio.h>
void main()
{
int a[8]={1,0,1,0,1,0,1,0},i;
for(i=2;i<8;i++)
a[i]+=a[i-1] +a[i-2];
for(i=0;i<8;i++)
printf("%5d",a[i]);
}
2.以下程序的运行结果________。
#include <stdio.h>
void main()
{
float b[6]={1.1,2.2,3.3,4.4,5.5,6.6},t;
int i;
t=b[0];
for(i=0;i<5;i++)
b[i]=b[i+1];
b[5]=t;
for(i=0;i<6;i++)
printf("%6.2f",b[i]);
}
3.以下程序的运行结果________。
#include <stdio.h>
void main()
{ int p[7]={11,13,14,15,16,17,18},i=0,k=0;
while(i<7 && p[i]%2)
{k=k+p[i];i++;}
printf("k=%d\n",k);
}
4.以下程序的运行结果________。
void main()
{ int a[3][3]={1,3,5,7,9,11,13,15,17};
int sum=0,i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{ a[i][j]=i+j;
if(i==j)
sum=sum+a[i][j];
}
printf("sum=%d",sum);
}
5.以下程序的运行结果________。
void main()
{ int a[4][4],i,j,k;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
a[i][j]=i-j;
for(i=0;i<4;i++)
{ for(j=0;j<=i;j++)
printf("%4d",a[i][j]);
printf("\n");
}
}
6.程序运行结果是________。
int t(int x,int y,int cp,int dp)
{ cp=x∗x+y∗y;
dp=x∗x-y∗y;
}
main()
{ int a=4,b=3,c=5,d=6;
t(a,b,c,d);
printf("%d%d\n",c,d);
}
7.程序运行结果是________。
fun(int x,int y,int z)
{z=x∗x+y∗y;}
main()
{ int a=31;
fun(5,2,a);
printf("%d",a);
}
8.程序运行结果是________。
int a,b;
void fun()
{ a=100;b=200;}
main()
{ int a=5,b=7;
fun();
printf("%d%d\n",a,b);
}
9.程序运行结果是________。
int x=3;
main()
{ int i;
for(i=1;i<x;i++) incre();
}
incre()
{ static int x=1;
x∗=x+1;
printf("%d",x);
}
10.程序运行结果是________。
int func(int a,int b)
{ return(a+b);}
main()
{ int x=2,y=5,z=8,r;
r=func(func(x,y),z);
printf("%d\n",r);
}
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。