1.函数调用语句:fseek(fp,-20L,2);的含义是( )。 |
A)将文件位置指针移到距离文件头20个字节处 B)将文件位置指针从当前位置向后移动20个字节 C)将文件位置指针从文件末尾处后退20个字节 D)将文件位置指针移到距离当前位置20个字节处
|
|
|
2.C语言规定,函数返回值的类型是由( )。 |
A)return语句中的表达式类型所决定 B)调用该函数时的主调函数类型所决定 C)调用该函数时系统临时决定 D)在定义该函数时所指定的函数类型所决定
|
|
|
3.下列转义字符不正确的是( )。 |
A)’\\’ B)’\ab’ C)’\083’ D)’\0’
|
|
|
4.C语言中运算对象必须是整型的运算符是( )。 |
A)/ B)++ C)% D)!=
|
|
|
5.下列选项中属于不正确的赋值语句的是( )。 |
A)t--; B)k=i==j; C)t1=t2=t3=3; D)t1=1,t2=2;
|
|
|
6.在PC 16位机下,下列程序执行后的输出结果是( )。
main( )
{ int x=0xFFFF; printf("%d\n",x--); } |
A)-32767 B)FFFE C)-1 D)-32768
|
|
|
7.以下程序的输出结果是( )。
main()
{ int x=’a’,y=’b’;
printf(“x=%%%c,y=%%%c\n”,x,y);} |
A)x=%a,y=%b B)x=a,y=b C)x=%%%c,y=%%%c D)x=%%c,y=%%c
|
|
|
8.执行下列程序中的输出语句后,x的值是( )。
main()
{int x ;
printf(“%d\n”,(x=4*5,x*2,x+20));} |
A)20 B)40 C)60 D)80
|
|
|
9.执行以下程序后的输出结果是( )。
#include "stdio.h"
void main()
{
int i = 0, j = 0, a = 6;
if ((++i>0)||(++j>0)) a ++;
printf("i=%d, j=%d, a=%d\n", i, j, a);
} |
A)i=0, j=0, a=6 B)i=1, j=1, a=7 C)i=1, j=0, a=7 D)i=0, j=1, a=7
|
|
|
10.为表示“a和b都不等于0”,应使用的C语言表达式是( )。 |
A)(a!=0) || (b!=0) B)a || b C)!(a=0)&&(b!=0) D)a && b
|
|
|
11.执行以下程序的输出结果是( )。
main()
{ int i=1,j=1,k=2;
if((j++||k++)&& i++)
printf("%d,%d,%d\n",i,j,k);
} |
A)1,1,2 B)2,2,1 C)2,2,2 D)2,2,3
|
|
|
12.以下程序的输出结果是( )。
main()
{int a=0,b=1,c=0,d=20;
if (a) d=d-10;
else if (!b)
if (!c) d=15;
else d=25;
printf("d=%d\n",d);
} |
A)d=10 B)d=15 C)d=20 D)d=25
|
|
|
13.以下程序的输出结果为( )。
#include "stdio.h"
void main()
{
int a=1,b=0;
for(;a<3;a++)
switch(a++)
{
case 1: b--;break;
case 2: b++;break;
case 3: b+=3;break;
}
printf("%d\n",b);
} |
A)0 B)-1 C)3 D)其他
|
|
|
14.以下程序的运行结果是( )。
void main()
{
int a=4; char ch=’a’;
printf( "%d\n",(a&2)&&(ch>’A’));
} |
A)0 B)1 C)2 D)3
|
|
|
15.设有程序段 char k;while (k>0) k++; printf("%d\n",k);则程序输出结果为( )。 |
A)-127 B)256 C)-128 D)128
|
|
|
16.下列程序的运行结果是( )。
main()
{ int y=10;
do { --y ;} while(y);
printf(“%d\n”,y- -);} |
A)-1 B)-2 C)9 D)0
|
|
|
17.以下是求两个正整数的最大公约数的函数fun( ), 下划线处应填入的正确语句为( )。
int fun(m,n)
int m,n;
{int r;
if(m<n) {r=m;m=n;n=r;}
if(n= =0) return(m);
do{ r=m%n;
if (r!=0){ m=n;n=r;}
} while (______);
return(n);
} |
A)r!=0 B)r==0 C)n!=0 D)n==0
|
|
|
18.现已定义整型变量int i=1; 执行循环语句“while(i++<5);”后,i的值为( )。 |
A)1 B)5 C)6 D)以上三个答案均不正确
|
|
|
19.以下程序的输出结果是( )。
main()
{int a=0,j;
for(j=0;j<4;j++)
{switch(j)
{case 0:
case 3:a+=2;
case 1:
case 2:a+=3;
default:a+=5;
}
}
printf("%d\n",a);
} |
A)20 B)13 C)10 D)36
|
|
|
20.若a、b均为int型变量,且a=100,则以下关于for循环语句的正确判断为( )。
for(b=100;a!=b;++a,b++)printf("————\n"); |
A)循环体只执行一次 B)是死循环 C)循环体一次也不执行 D)输出————
|
|
|
21.下面有关for循环的描述正确的是( )。 |
A)for循环只能用于循环次数已经确定的情况 B)for循环是先执行循环体语句,后判断表达式 C)for循环中可以用break语句跳出循环体 D)for循环中可以包含if语句,但必须用花括号括起来
|
|
|
22.以下程序的输出结果为( )。
#include <stdio.h>
main()
{ int i=0,a=0;
while(i<20)
{ for( ; ; )
{ if((i%10)==0) break;
else i--; }
i+=11; a+=i;
}
printf("%d\n",a);
} |
A)21 B)32 C)33 D)11
|
|
|
23.下列说法正确的是( )。 |
A)break 用在switch语句中,而continue 用在循环语句中 B)break 用在循环语句中,而continue用在switch语句中 C)break 能结束循环,而continue只能结束本次循环 D)continue能结束循环,而break只能结束本次循环
|
|
|
24.若有以下程序段
… …
int a[ ]={4,0,2,3,1},i,j,t;
for(i=1;i<5;i++)
{t=a[i];j=i-1;
while(j>=0&&t>a[j])
{a[j+1]=a[j];j--;}
a[j+1]=t;}
… …
则该程序段的功能是( )。 |
A)对数组a进行插入排序(升序) B)对数组a进行插入排序(降序) C)对数组a进行选择排序(升序) D)对数组a进行选择排序(降序)
|
|
|
25.下面的程序对输入的每一个数字出现的次数进行计数,下划线处应填入的正确语句为( )。
#include "stdio.h"
main()
{int i,ch, n[10];
for(i=0;i<10;++i) n[i]=0;
while((ch=getchar())!=‘\n’)
if(ch>=‘0’ && ch<=‘9’)
________;
for(i=0;i<10;++i)
printf("数字%d出现的次数是:%d\n",i,n[i]);
} |
A)n[ch-‘0’]++ B)n[ch]++ C)i++ D)n[i]++
|
|
|
26.以下程序段输出字符串str的内容, 其中循环条件str[i]!= ’\0’还可以写成( )。
char str[80];
for(i=0;str[i]!=’\0’ i++)
putchar(str[i]); |
A)str[i]!=NULL B)i< 80 C)!(str[i])= ’\0’ D)i<=80
|
|
|
27.下列程序的运行结果是( )。
main()
{int a=4,y;
y=fn(a,++a);
printf(“%d”,y);}
int fn(x,c)
{int b;
if(x<c)b=1;
else if(x==c)b=0;
else b=-1 ;
return(b);
} |
A)4 B)-1 C)1 D)0
|
|
|
28.下列程序执行后的输出结果是( )。
void func(int *a,int b[])
{ b[0]=*a+6; }
main()
{ int a,b[5]={0};
a=0; b[0]=3;
func(&a,b); printf("%d\n",b[0]);
} |
A)6 B)7 C)8 D)9
|
|
|
29.函数f定义如下,执行语句“m=f(5);”后,m的值应为( )。
int f(int k)
{ if(k==0||k==1) return 1;
else return f(k-1)+f(k-2);
} |
A)3 B)8 C)5 D)13
|
|
|
30.下列关于字符串操作的输出结果是( )。
#include "stdio.h"
#include "string.h"
void main()
{
char p1[20]="abcd",p2[20]="ABCD";
char str[50]="xyz";
strcpy(str+2,strcat(p1+2,p2+1));
printf("%s\n",str);
} |
A)xyabcAB B)abcABz C)Ababcz D)xycdBCD
|
|
|
31.有如下程序,该程序的输出结果是( )。
long f(int n)
{ if(n>2) return(f(n-2)+f(n-3));
else
if(n==2) return(2);
else return(1); }
main()
{ printf("%d\n",f(5)); } |
A)2 B)3 C)4 D)5
|
|
|
32.以下程序的输出结果是( )。
#include "stdio.h"
void fun(int *p)
{
int a=10;
p=&a;
++a;
}
void main()
{
int a=5;
fun(&a);
printf("%d\n",a);
} |
A)5 B)6 C)10 D)11
|
|
|
33.如果要限制一个变量只能被本程序文件使用,必须通过( )来实现。 |
A)静态内部变量 B)外部变量声明 C)静态外部变量 D)局部变量声明
|
|
|
34.以下程序的运行结果是( )。
void fun(int *n)
{
static int m=2;
*n*=m-1; m+=2;
}
void main()
{
static int m=1;
int i;
for(i=1;i<4;i++)
fun(&m);
printf("%d\n",m);
} |
A)8 B)10 C)11 D)15
|
|
|
35.设有下列定义:
static int x,*p=&x,*q;
scanf(“%d,%d”,p,q);
若输入5,6,则x的值为( )。 |
A)5 B)6 C)0 D)无法确定
|
|
|
36.以下程序的输出结果是( )。
#include <stdio.h>
#define H1 5
#define H2 H1+1
#define H3 H2*H2/2
void main()
{
int s=0,k=H3;
while(k--)s++;
printf("%d\n",s);
} |
A)18 B)19 C)10 D)宏定义有错,不能编译
|
|
|
37.执行以下程序后,a的值为( )。
int *p,a=10,b=1;
p=&a;a=*p+b; |
A)12 B)编译出错 C)10 D)11
|
|
|
38.下列程序段的输出结果是( )。
int c[ ]={1, 7, 12};
int *k=c+1;
printf("%d",*k++); |
A)2 B)7 C)8 D)12
|
|
|
39.若有二维数组定义语句:int a[4][5]; 则对元素a[2][3]的引用方式不正确的是( )。 |
A)*(&a[2][3]) B)*(a+5*2+3) C)*(a[2]+3) D)*(*(a+2)+3)
|
|
|
40.已知有以下的说明,
int a[]={8,1,2,5,0,4,7,6,3,9}; 那么a[*(a+a[3])]的值为( )。 |
A)5 B)0 C)4 D)7
|