资源描述
一、选择题
1.如下论述正确的是( ):
A) 在C程序中,main函数必须位于程序的最前面
B) C程序的每行只能写一条语句
C) C语言使用库函数实现输入输出操作
D) 注释中的拼写错误会影响编译成果
2、如下说法中正确的是()
A) C语言程序总是从第一个的函数开始执行
B) C语言程序总是从main()函数开始执行
C)在C语言程序中,要调用的函数必须在main()函数中定义
D) C语言程序中的main()函数必须放在程序的开始部分
3、下列选项种说法正确的是( )
A) 函数由申明部分和执行部分两部分组成
B)语言中main函数一定在程序的开始部分
C)C语言程序总是从第一个定义的函数开始执行
D)C程序的每行中只能写一条语句
4、设有阐明:int a; float b; char c; double d; 则体现式1.3*a+2*b*c+d*(int)2.6 值的类型为( )。
A) double B) char C) float D) int
5、 C语言的标识符只能由字母、数字和下划线三种字符组成,且第一个字符( )
A)必须为字母
B)必须为下划线
C)必须为字母或下划线
D)能够是字母、数字和下划线中任一个字符
6、如下不正确的C语言标识符是( )。
A) ABC B) abc C) a_bc D) void
7、下列运算符中优先级最高的是( )
A) < B)+ C)&& D)!=
8、如下选项中属于C语言中合法核心字的是( )
A)Float B)abc C)int D)CASE
9、 若x、i、j和k都是int型变量,计算下面体现式后,x的值为( )
x=(i=4,j=16,k=32)
A)4 B)16 C)32 D)52
10、在C语言中,要求数据必须是整型的运算符是( )
A)/ B)+ + C)!= D) %
11、若整型变量x的值为8,则下列体现式中值为1的体现式是
A)x+=x-=x B) x%=x-1 C) x%=x%=3 D) x/=x+x
12、若w=1,x=2,y=3,z=4,则条件体现式“w > x ? w : y < z ? y : z”的值是( )
A)4 B)3 C)2 D)1
13、有如下程序,程序运行后的输出成果是。
main()
{ int i=1,j=2,k=3;
if(i++==1&&(++j==3||k++==3))
printf("%d %d %d\n",i,j,k);
}
A)1 2 3 B)2 3 4 C)2 2 3 D)2 3 3
14、下面程序的输出成果是
main()
{int x=2,y=-1,z=2;
if(x<y)
if(y<0)z=0;
else z=-1+x;
printf(“%d\n”z);
}
A) 3 B) 2 C) 1 D)0
15、执行下列语句后,a的值为( )
main( )
{int a=5;
printf(“%d\n”,(a=3*5,a*4,a+5));
}
A) 65 B)20 C) 15 D)10
16、下列程序段中,有错误的行是()
列定行号 int x=0,y=10;
2 switch(x)
3 {case 3:
4 case –1:y=y-2;break;
5 case y+1:x+=5;
6 default:printf(“%d,%d”,x,y);}
A) 4 B) 3 C) 5 D)无错误
17、若i为整型变量,则如下循环执行次数是( )。
#include"stdio.h"
void main()
{ int i;
for(i=2;i==0; )
printf("%d",i--);
}
A) 无限次 B)0次 C) 1次 D) 2 次
18、若有如下定义,double a[10];则a数组元素下标的上、下限分别为( )
A) 1,10 B) 0,9 C) 0,10 D)1,9
19、若已定义的函数有返回值,则以有关该函数调用的论述中错误的是()
A) 调用能够作为独立的语句存在 B) 调用能够作为一个函数的实参
C) 调用能够出目前体现式中 D) 调用能够作为一个函数的形参
20、 定义如下变量和数组:
int i;
int 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
21、如下不能正确定义二维数组的选项是
A) int a[2][2]={{1},{2}}; B) int a[][2]={1,2,3,4};
C) int a[2][2]={{1},2,3}; D) int a[2][]={{1,2},{3,4}};
22、若有如下定义:int a[5]={10,20,30,40,50},*p=a;则执行++(*p)后(*p)++的值是
A) 10 B) 11 C) 20 D)21
23、函数的嵌套调用是指
A) 直接调用本函数
B) 在定义函数时,又定义另一个函数
C) 间接调用本函数
D) 被调用函数又调用另一个函数
24、下列说法正确的是
A) 被调用函数必须先调用,后申明
B) 用户自定义函数的类型若未指出,则系统默以为void
C) 全局变量不能与局部变量同名
D) 实参能够是任意体现式
25、如下描述正确的是( )
A)continue语句的作用,是结束整个循环语句的执行
B)只能在循环体内和switch语句体内使用break语句
C)在循环体内使用break语句或continue语句的作用相同
D)多层循环嵌套中不能够使用break语句
26、若有阐明语句:“int a[3][4];”,则对数组元素的正确引用格式是( )
A)a[2][4] B) a[1,3] C) a[1+1][0] D) a(2)(1)
27、若有阐明:“int a[3][4]={0};”,则下面正确的论述是( )
A)只有元素a[0][0]可得到初值0
B)此数组阐明语句不正确
C)数组a中各元素都可得到初值,但其值不一定为0
D)数组a中每个元素均可得到初值0
28、定义数组a和b的语句是:
“char a[ ]=“ABCDEF”; char b[ ]={‘A’,‘B’,‘C’,‘D’,‘E’,‘F’};”
则如下论述正确的是( )
A)a和b数组完全相同 B)a与b数组元素个数相同
C)a和b中都存储字符串 D)a数组比b数组元素个数多
29、语句“int (*ptr) ( );”的含义是( )
A)ptr是指向一维数组的指针变量
B)ptr是指向int型数据的指针变量
C)ptr是指向函数的指针,该函数返回一个int型数据
D)ptr是一个函数名,该函数返回值是指向int型数据的指针
30、若有定义:“int *p[4];”,则标识符p 是( )
A)一个指向整型变量的指针
B)一个指针数组名
C)一个指针,它指向一个含有四个整型元素的一维数组
D)无效的数组名
31、在C语言中( )
A) 函数定义能够嵌套,但函数调用不能够嵌套
B) 函数定义不能够嵌套,但函数调用能够嵌套
C) 函数定义和调用都能够嵌套
D) 函数定义和条用都不能嵌套
32、下面程序的输出成果是( )
#include <stdio.h>
void main()
{ int i,j,x=0;
for(i=0;i<=2;i++)
{ x++;
for(j=0;j<=2;j++)
{ if(j%2)continue;
x ++;}
x ++;
}
printf("%d\n",x); }
A)4 B)6 C)8 D)12
33、执行下列语句后,m的值为( )
int m=1,x=2,y=3,z=4;
m=m<x?m:x;
m=m<y?m:y;
m=m<z?m:z:
A) 1 B) 4 C) 2 D) 3
34、下列程序段是实现给数组所有元素赋值操作,应在下划线上填入的是( )
int a[10];
for(i=0;i<=9;i++) scanf(“%d”, );
A) a B) &a[i] C) a[i] D) &a[0]
35、下列论述正确的是()
A) do-while语句组成的循环不能用其他语句组成的循环来替代
B) do-while语句组成的循环只能用break语句退出
C) 用do-while语句组成的循环,在while后的体现式为非零时结束循环
D) 用do-while语句组成的循环,在while后的体现式为零时结束循环
36、下列程序的输出成果为()
#include “stdio.h”
main()
{ int a,b;
for(a=1,b=1;a<=100;a++)
{ if(b>=20) break;
if(b%3==1)
{b+=3;continue;}
b+=5;}
printf(“%d, %d”, a, b);
}
A) 8,20 B) 8,22 C) 7,20 D) 7,22
37、设 int a[5]={10,15,20,25,30};
int *p; p=a+2;则体现式++*p的值为()
A) 20 B) 15 C) 16 D) 21
38、设w=1,x=2,y=3,z=4,a=5,b=6,则执行一下语句后A)b的值分别为( )
(a=w>x)&&(b=y>z);
A) 0和0 B) 5和0 C) 0和6 D) 5和6
39、下列语句的输出为( )
int x=-1;
printf(“%d,%u,%o”,x,x,x);
A) –1,-1,-1 B) –1,32767,-177777
C) –1,32768,177777 D) –1,65535,177777
40、下列函数调用语句中的实参个数为( )
fun((a+b,x,y),fun(x,(x+z)));
A) 2 B) 3 C) 4 D) 5
41、设有数组定义:char array[ ]=”china”;则数组array所占的内存空间为( )
A) 4个字节 B) 5个字节 C) 6个字节 D) 7个字节
42、如下程序段的运行成果是( )。
char c[5]={ ‘a’ , ’b’ , ‘\0‘ , ‘c’ , ‘\0’ } ;
printf( “%s” , c );
A)’a’’b’ B)ab C)ab c D)a b
43、若C程序中出现死循则违背了算法的( )
A)有效性 B)确定性
C)有穷性 D)有一个或多个输出
44、设 int a=20;则执行体现式:a/=a+a后,a的值是( )
A)0 B)1 C)20 D)40
45、int x,y,z,m=5,n=5;则执行下面语句后的z值是( )
x=(--m==n++)?--m:++n;
y=m++;
z=n;
A)5 B)10 C)6 D)7
46、执行下列程序段后,i的正确成果是( )
int i=10;
switch(i)
{ case 9: i+=1;
case 10: i++;
case 11: ++i;
default:i+=i; }
printf( "%d", i );
A)10 B)11 C)12 D)24
47、若有定义:int a[10];。则如下体现式中不能代表数组元素a[1]的地址的是( )
A)&a[0]++ B)&a[1] C)&a[0]+1 D)a+1
48、变量的指针,其含义是指该变量的( )
A)值 B)地址 C)变量名 D)一个标志
49、有如下函数定义:
void fun(int n, double x)
{ …… }
若如下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是( )
A)fun(int y,double m); B)k=fun(10,12.5);
C)fun(x,n); D)void fun(n,x);
50、设整型变量n=10,i=4,则赋值运算n%=i+1执行后,n的值是( )。
A) 0 B) 1 C) 2 D) 3
51、若int a, b; scanf("%d%d", &a, &b); 不能够用( )作为输入的分隔符。
A) , B)空格 C)回车 D)TAB键
52、下面有关运算符优先次序的描述中正确的是: ( )
A)关系运算符< 算术运算符< 赋值运算符< 逻辑与运算符
B)逻辑 运算符< 关系运算符< 算术运算符< 赋值运算符
C)赋值运算符< 逻辑与运算符< 关系运算符< 算术运算符
D)算术运算符< 关系运算符< 赋值运算符< 逻辑与运算符
53、为了判断两个字符串s1和s2是否相等,应当使用( )。
A) if(s1 == s2) B) if(s1 = s2)
C) if(strcpy(s1,s2)) D)if(strcmp(s1,s2)==0)
54、如下对二维数组进行正确初始化的是( )。
A)int a[2][3]={{1,2},{3,4},{5,6}};
B)int a[][3]={1,2,3,4,5,6};
C)int a[2][]={1,2,3,4,5,6};
D)int a[2][]={{1,2},{3,4}};
55、 若用数组名作为函数调用时的实参,则实际上传递给形参的是( )。
A)数组的首地址 B) 数组的第一个元素值
C)数组中所有元素的值 D) 数组元素的个数
56、 如下错误的描述是( )。
A) 不一样的函数中能够使用相同的变量名
B) 形式参数是局部变量
C) 一个函数内部定义的变量只能在本函数范围内有效
D) 在一个函数内部的复合语句中定义的变量能够在本函数范围内有效
57、下列程序的运行成果是( )
main( )
{ int i=10;
int *p=&i;
i=8;
printf(“%d”,*p);
}
A)10 B)8 C)程序错误,不能运行 D)成果不确定
58、C语言中,double类型的数据占字节数为( )
A) 1 B) 2 C) 4 D) 8
59、可在C程序中用作用户标识符的一组标识符是( )
A)as_b3 _123 If
B) For -abc case
C) 2c DO SIG
D) void define WORD
60、如下字符中,不正确的C语言转义字符是( )
A) ‘\\’ B) ‘\018’ C) ‘\Xaa’ D) ‘\t’
61、C语言中,数据在内存中都以( )形式存储
A) 原码 B) 反码 C) ASCll码 D)补码
62、下列运算符中,优先级最高的是( )
A) && B) ! C) ++ D) ||
63、有输入语句:scanf (“a=%d ,b=%d ,c=%d” ,&a,&b,&c) ;为使变量a 的值为11,b 为12,c为13,则从键盘输入数据的正确形式应当是( )。
A)11 12 13 B)11, 12, 13
C)a=11 b=12 c=13 D) a=11, b=12, c=13
64、为表示关系 -1≤x≤1应使用的c语言体现式是( )
A) -1≤x≤1 B) -1=<x&&x=<1
C) -1=<x=<1 D) x>=-1&&x<=1
65、若有如下定义:
double a; int b;
float c; char d;
则体现式a*b/d+(d-c)值的类型为( )
A) float B) int C) char D) double
66、下列程序输出的成果是( )
main()
{int a=18;
a+=a-=a*a;
printf("%d",a);
}
A) -612 B) 9 C) 0 D) 36
67、break语句( )
A) 只能出目前if语句中 B) 只能出目前循环体中
C) 可用在循环体和switch语句中 D) 可用在函数中的任何语句
68、如 int k=11;则执行语句k=1/3*++k;后k取值为( )
A) 12 B) 3C) 4 D) 0
69、如下程序的输出成果是( )
main()
{ int x=12,y=012;
printf("%d %d\n",x--,--y);
}
A)12 9 B)11 11 C)11 12 D)12 11
70、 设 int x=1, y=5; 体现式(!x||y--||++x)的值是( )
A) 0 B) 1 C) 5 D) 4
71、假如k为整数,则while循环执行次数()
k=10;
while(0) k=k-1;
A) 一次都不执行 B) 1 C) 10 D) 无限次
72、 有如下程序( )
fun(int a, int b)
{ if(a>b) return b;
else return b;
}
main( )
{ int x=3, y=8, z=6, r;
r=fun (x, y+z);
printf("%d\n", r);
程序运行后的输出成果是( )
A) 3 B) 6 C) 8 D) 14
73、若有阐明:int n=17,*p=&n,*q=p;,则如下非法的赋值语句是( )
A) p=q; B) *p=*q; C) n=*q; D) p=n;
74、 如下程序的功效是:按次序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下:
main()
{ int n,k;
float score ,sum,ave;
sum=0.0;
for(n=1;n<=10;n++)
{ for(k=1;k<=4;k++)
{ scanf(“%f”,&score); sum+=score;}
ave=sum/4.0;
printf(“NO%d:%f\n”,n,ave);
}
}
上述程序运行后成果不正确,调试中发觉有一条语句出目前途序中的位置不正确。这条语句是( )
A) sum=0.0; B) sum+=score;
C) ave=sun/4.0; D) printf(“NO%d:%f\n”,n,ave);
75、数组定义为char a[10]={‘a’,‘b’,‘c’};该数组包括的元素个数是( )
A) 3 B) 9 C) 4 D)10
76、下面程序的输出成果是( )
main ( )
{ int x = 2, y = -1,z = 2;
if ( x < y )
if ( y < 0 ) z = 0;
else z = -1+x++;
printf ("%d\n", z++ );}
A) 3 B) 2 C) 1 D) 0
77、有如下程序
main( )
{ int a[ ]={0,1,2,3,4,5,6,7,8,9}, *p ;
for(p=&a[9];p>=a;p--)
printf("%d,",*p);
}
程序运行后的输出成果是( )
A)0 1 2 3 4 5 6 7 8 9
B)2,3,4,5,6,7,8,9,10,1
C)0,1,2,3,4,5,6,7,8, 9,
D)9,8,7,6,5,4,3,2,1, 0,
78、 执行循环语句: for(x=y=0;y!=250||x<4;x++)y+=50;
其循环体执行的次数为( )
A) 5 B) 4 C)3 D)2
79、如 int x=14; 下列求商y(需小数成果)的体现式哪一个不对( )
A) y=x/(5+.0) B) y=x/5. C) y=1.*x/5 D) y=x/5*1.0
80、设有如下程序段( )
int x=0,s=0;
while(!x!=0)s+=++x;
printf("%d",s);
则 :A)运行程序段后输出0 B)运行程序段后输出1
C)程序段中的控制体现式是非法 D)程序无法运行
81、有如下程序,程序运行后的输出成果是( )
#include"stdio.h"
void main()
{ int i=0,j=2,m=3,n;
n=i++<=1&&j>=2&&m++;
printf("%d,%d,%d,%d \n",i,j,m,n);
}
A)2,2,4,1 B)2,2,3,1 C) 1,2,4,1 D)2,1,3,1
82、下面程序的输出成果是( )
#include <stdio.h>
void main()
{ int i,x=1,y=0,a=0,b=0;
switch(x)
{ case 1:b++;
case 2:a++;b++;break;
case 3:a++;b++;
}
printf("%d,%d\n",a,b);
}
A)2,1 B)2,2 C)1,2 D)4,2
二、程序分析及填空
1.C语言的基本数据类型中,有两种实数类型变量,一个是float型,另一个是( )型。
2.若程序中有语句“scanf(“a=%d,b=%d”,&a,&b);”,在执行程序时,要输入3和5两个数,应当键入( )。
3.包括数学类库函数的头文献名称是( )。
4.字符串“ab\034\\\x79”的长度为( )。
5.数组元素作函数参数进行的是 传递,数组名作函数参数进行的是____传递。
6.设有函数调用语句f(x1,x1+x2,f1(x1,x2));则函数f()实参的数目有____个。
7.在数组 int score[10]={1,2,3,4,5,6}中,元素定义的个数有 个,其中score[8]的值为 。
8.C语言源程序文献的后缀是 通过编译后,生成文献的后缀是 ,通过连接后,生成文献的后缀是 。
结构化程序由 、 、 三种基本结构组成。
9、C语言提供的三中逻辑运算符是____________ 、____________、____________。
10、若a=1,b=4,c=3, 则体现式!(a<b)||!c&&1的值是_______________ 。
11、在C语言中,若对函数类型未加阐明,则函数的隐含类型为 类型。
12、在C语言中,唯一的一个三目运算符是 。
13、如下程序运行后的输出成果是____________。
#include <stdio.h>
void main( )
{ int m=5;
if (m++>5)printf("%d\n",m);
else printf("%d\n",m--);}
14、如下程序运行后的输出成果是 。
#include <stdio.h>
void main()
{ int x=15;
while(x>10 && x<50)
{ x++;
if(x/3){x++;break;}
else continue;
}
printf("%d\n",x);}
15、下面程序的运行成果是: 。
#include "stdio.h"
void swap(int *a,int *b)
{ int *t;
t=a; a=b; b=t;
}
void main()
{ int x=3,y=5,*p=&x,*q=&y;
swap(p,q);
printf("%d%d\n",*p,*q);
}
16、在执行如下程序时,假如从键盘上输入:AdEf<回车>,则输出为 ____________
#include"stdio.h"
void main()
{char ch;
while ((ch=getchar())!='\n')
{if (ch>='A'&&ch<='Z')ch=ch+32;
else if (ch>='a'&&ch<='z')ch=ch-32;
printf("%c",ch);
}
printf("\n");}
17.设有如下宏定义,则执行赋值语句 a=PP*20;(a为int型变量)后,a的值是 。
#define PR 100
#define PP PR+400
18、下列程序段的输出成果为
int x=10,y=1;
y=y--||x++;
printf(“%d,%d”,(y,x++),y);
19、有如下程序
#include "stdio.h"
void main()
{
int a[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};
int i,s=0;
for(i=0;i<4;i++)
s+=a[i][i];
printf("%d\n",s);
}
程序运行后的输出成果是
程序的功效为
20、有如下程序
#include <stdio.h>
void main( )
{ int p=2, t=1;
while(p<=5 )
t=t*p++;
printf("%d\n",t);}
该程序运行后变量p和t中的值分别为 。
21、有如下程序
#include <stdio.h>
void main()
{ int a,b,c=221;
a=c/100%3;
b=a&&-1;
printf(“%d,%d”,a++,b--); }
该程序运行后的输出成果是
22、如下程序的输出成果为 。
#include <stdio.>
main()
{ int a[ ]={1,2,3,4,5,6},*p=a;
*(p+3)+=2;
printf(“%d,%d”,*p,*(p+3)); }
23、如下程序的输出成果为 。
#include "stdio.h"
int x1=40,x2=70;
void main( )
{ int x3=50,x4=60;
int sub(int x3,int x4);
printf("%d,%d\n",x1,x2);
}
void sub(int x,int y)
{ x1=x; x2=y;}
24、下面C程序的输出是:
main()
{ int m=6;
if(m--<6) printf("%d\n",++m);
else printf("%d\n",--m);
}
25、下面C程序的输出是:
#include "stdio.h"
main()
{ int a=5,*p=&a;
*p=a+*p;
printf ("a=%d\n",a);}
26、下面C程序的输出是:
#include "stdio.h"
void f(int n)
{ printf("%3d",n%10);
if(n>0)
f(n/10); }
void main()
{ f(12);}
27、如下程序的输出成果是:
#include "stdio.h"
void main()
{ int y;
for(y=6; y>0; y--)
if(y%3==0)
{ printf("%d", --y); continue;} }
28、在数组 int score[10]={1,2,3,6}中,score[7]的值为_______。
29、程序运行后的输出成果是
#include "stdio.h"
void main()
{ int a=1,b=2;
printf("%d",(a++,++b,(a++)+b));}
30、如下程序运行后的输出成果是
#include <stdio.h>
void 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]); }
31. 如下程序运行后的输出成果是
#include <stdio.h>
main()
{ int a=5,b=7,c;
printf(“%d\n”,c=a>b);
}
32. 如下程序运行后的输出成果是
#include "stdio.h"
main( )
{ int i,j,k=0,m=0;
for(i=0;i<2;i++)
{ for(j=0;j<3;j++)
k++; k-=j;
}
m=i+j;
printf("k=%d,m=%d\n",k,m);
}
33. 如下程序运行后的输出成果是
#include "stdio.h"
swap(int *p1, int *p2)
{ int p;
p=*p1; *p1=*p2; *p2=p;
}
main()
{ int a=12,b=13;
int *pointer_1,*pointer_2;
pointer_1=&a; pointer_2=&b;
if(a<b)swap(pointer_1,pointer_2);
printf("\n%d,%d\n",a,b);
}
34. 如下程序运行后的输出成果是
#include "stdio.h"
展开阅读全文