17.有以下程序: #include
{ char c1,c2;
c1='A'+'8'-'4'; c2='A'+'8'-'5';
printf( \,%d\\n\,c1,c2); }
已知字母A的ASCII码为65,程序运行后的输出结果是( )。 A) E,68 B) D,69 C) E,D
D) 输出无定值
18.若有定义int x,y; 并已正确给变量赋值,则以下选项中与表达式(x-y)?(x++) : (y++)中的条件表达式(x-y) 等价的是( )。 A) (x-y<0||x-y>0) B) (x-y<0) C) (x-y>0) D) (x-y==0)
19.有以下程序: #include
{ int x=1, y=0; if (!x) y++; else if (x==0)
if (x) y+=2; else y+=3; printf(\, y); }
程序运行后的输出结果是( )。 A) 3 B) 2 C) 1 D) 0
20.若有定义:float x=1.5; int a=1,b=3,c=2; 则正确的switch语句是( )。 A) switch(a+b)
{ case 1: printf(\; case 2+1: printf(\; }
B) switch((int)x);
{ case 1: printf(\; case 2: printf(\; }
C) switch(x)
{ case 1.0: printf(\; case 2.0: printf(\; }
D) switch(a+b)
{ case 1: printf(\; case c: printf(\; }
21.有以下程序:
#include
{ int y=9;
for( ; y>0; y--)
if(y%3==0) printf(\, --y); }
程序的运行结果是( )。 A) 852 B) 963 C) 741 D) 875421
22.有以下程序: #include
{ int i,j,m=1; for(i=1;i<3;i++) { for(j=3;j>0;j-- ) { if(i*j>3) break; m*=i*j; } }
printf(\=%d\\n\,m); }
程序运行后的输出结果是( )。 A) m=4 B) m=2 C) m=6 D) m=5
23.有以下程序:
#include
int fun (int x, int y )
{ if (x!=y) return ( (x+y) /2 ); else return ( x ); }
main()
{ int a=4, b=5, c=6;
printf( \, fun(2*a,fun(b,c))); } A) 6 B) 3 C) 8 D) 12
24.有以下程序:
#include
int add( int a,int b){ return (a+b); } main()
{ int k, (*f)(), a=5,b=10; f=add; … }
则以下函数调用语句错误的是( )。 A) k=f(a,b); B) k=add(a,b); C) k=(*f)(a,b); D) k= *f(a,b);
25.有以下程序:
#include
{ int n,*p=NULL; *p=&n;
printf(\n:\; scanf(\,&p); printf(\n:\; printf(\,p);
}
该程序试图通过指针p为变量n读入数据并输出,但程序有多处错误,以下语句正确的是( )
A) int n,*p=NULL; B) *p=&n;
C) scanf(\,&p) D) printf(\,p);
26.下列定义数组的语句中,正确的是( )。 A) #define N 10 int x[N];
B) int N=10; int x[N];
C) int x[0..10]; D) int x[ ];
27.有以下程序:
#include
{ int a[]={2,3,5,4},i; for(i=0;i<4;i++) switch(i%2)
{ case 0: switch(a[i]%2)
{ case 0:a[i]++;break; case 1:a[i]--; } break; case 1:a[i]=0; }
for(i=0;i<4;i++) printf(\,a[i]); printf(\; }
程序运行后的输出结果是( )。 A) 0 3 0 4
B) 2 0 5 0 C) 3 3 4 4 D) 3 0 4 0
28.有以下程序:
#include
{ int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1; for(i=0; i<3; i++)
for(j=i;j<=i;j++) t+=b[i][b[j][i]]; printf(\,t); }
程序运行后的输出结果是( )。 A) 3 B) 4 C) 1 D) 9
29.以下语句中存在语法错误的是( )。 A) char ss[6][20]; ss[1]= \?\; B) char ss()[20]={ \?\;
C) char *ss[6]; ss[1]= \?\; D) char *ss()={ \?\;
30.以下不能将s所指字符串正确复制到t所指存储空间的是( ) A) do{*t++=*s++;}while(*s ); B) for(i=0;t[i]=s[i];i++); C) while(*t=*s){t++;s++}
D) for(i=0,j=0;t[i++]=s[j++]; );
31.有以下程序: #include
void swap(char *x, char *y) { char t;
t=*x; *x=*y; *y=t; }
main()
{ char *s1=\, *s2=\;
swap(s1,s2); printf(\,%s\\n\,s1,s2); }
程序执行后的输出结果是( )。 A) 321,cba B) abc,123 C) 123,abc D) 1bc,a23
32.有以下函数:
int fun(char *x, char *y) { int n=0;
while ( (*x==*y) && *x!='\\0' ) {x++; y++; n++;} return n ; }
函数的功能是( )。
A) 将y所指字符串赋给x所指存储空间 B) 查找x和y所指字符串中是否有'\\0'
C) 统计x和y所指字符串中最前面连续相同的字符个数 D) 统计x和y所指字符串中相同的字符个数
33.有以下程序: #include
{ static int x=1; x*=2; return x; }
main()
{ int i, s=1;
for( i=1; i<=3; i++ ) s*=fun(); printf(\, s); }
程序运行后的输出结果是( )。 A) 10 B) 30 C) 0 D) 64
34.在一个C源程序文件中所定义的全局变量,其作用域为( A) 由具体定义位置和extern说明来决定范围 B) 所在程序的全部范围 C) 所在函数的全部范围 D) 所在文件的全部范围
35.以下叙述中错误的是( )。 A) 可以通过typedef增加新的类型
B) 可以用typedef将已存在的类型用一个新的名字来代表 C) 用typedef定义新的类型名后,原有类型名仍有效
D) 用typedef可以为各种类型起别名,但不能为变量起别名
36.有以下程序:
#include
{ int a, b; } data[2]={10,100,20,200}; main()
{ struct S p=data[1];
printf(\, ++(p.a) ); }
程序运行后的输出结果是( )。 A) 10 B) 11 C) 20 D) 21
37.有以下程序: #include
)。
搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新高中教育二级C语言笔试题库 (3)全文阅读和word下载服务。
相关推荐: