给你贴个卷子,供你参考:
一、单项选择题 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( )
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 ((++i0)||(++j0)) 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(;a3;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",(a2)(ch’A’));
}A)0
B)1
C)2
D)3
15.设有程序段 char k;while (k0) k++; printf("%d\n",k);则程序输出结果为( )。A)-127
B)256
C)-128
D)128
16.下列程序的运行结果是( )。
main()
{ int y=10;
do 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(mn)
if(n= =0) return(m);
do{ r=m%n;
if (r!=0)
} 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;j4;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(i20)
{ 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[ ]=,i,j,t;
for(i=1;i5;i++)
{t=a[i];j=i-1;
while(j=0ta[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;i10;++i) n[i]=0;
while((ch=getchar())!=‘\n’)
if(ch=‘0’ ch=‘9’)
________;
for(i=0;i10;++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(xc)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〔〕)
main()
;
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(n2) return(f(n-2)+f(n-3));
else
if(n==2) return(2);
else return(1); }
main()
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;i4;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[ ]=;
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[]=; 那么a[*(a+a[3])]的值为( )。A)5
B)0
C)4
D)7
温馨提示:内容为网友见解,仅供参考