疯疯丫头315
一、单项选择题(共10题,每题2分,共20分。在备选答案中选择一个最佳答案。多选、错选、不选不得分)1、不是C语言基本数据类型的是( )。 A、指针类型 B、整型 C、字符型 D、实型2、设有:int a=3, b= 4, c= 5,x , y; 表达式0 && (x=a)&&(y=b)的值为( )。 A、1 B、0 C、3 D、43、设有语句 int a=3 ; 则执行了语句 a+=6;后,变量a 的值为( )。 A、18 B、-3 C、9 D、124、执行以下程序段后,输出的y值为( ) void main() { int a[]={2,4,6,8,10}; int y, *p; p=&a[0]; y=*p; printf(“%d”,y); }A、2 B、4 C、6 D、85、有定义语句:float a[4];则分配给数组a的内存空间为( )字节。 A、 20 B、 12 C、 16 C、106、以下描述错误的是( )。A、break语句可用于while语句。B、break语句和continue语句的作用是一样的。C、在循环语句中使用break语句是为了跳出循环,提前结束循环。D、在循环语句中使用continue语句是为了结束本次循环,而不终止整个循环。7、C语言中规定,if语句的嵌套结构中,else总是( )。A、与最近的if 配对 B、与第一个if 配对C、按缩进位置相同的if配对 D、与最近的且尚未配对的if 配对8、说明语句“int (*p)( ); ”的含义是( ) 。A、p是一个指向一维数组的指针变量。B、p是指针变量,指向一个整型数据。C、p是一个指向函数的指针,该函数返回一个int型数据。D、以上都不对。9、以下对二维数组c的正确声明是 ( ) 。A、int c[3][ ]; B、int c(3,4); C、int c(2)(2); D、int c[3][2];10、下述程序段执行后输出结果为( )。 int x=100, y=200; printf ("% d", (x, y)); A、100 B、200 C、100,200 D、编译出错二、填空题(共7题,共10空,每空1分,共10分。将答案填在题中横线上)1、C语言提供的三种逻辑运算符是 && 、 || 和!;2、函数的返回值是通过函数中的 return 语句获得的。3、在"int a[ ][3]={{1},{3,2},{4,5,6},{0}};"定义后,a[2][2]的值为_6__ _;4、对于"int *pa[5];" pa是一个具有5个元素的_数组指针_,每个元素是一个指向int型变量的__指针__;5、单向链表的尾节点next指针应赋值__ NULL___;6、在语句for(x=1,y=3;x>y;y++)中循环体执行的次数为 0 。 7、int a[5];数组a的首地址为2000,则元素a[1]的地址为 2002 ,元素a[2]的地址为 2004 。三、程序填空题(共2题,共5空,每空4分,共20分)1、以下程序完成计算1-1/2+1/3-1/4+1/5+……前n 项和,请填空。#include <>int main( ){ int i, n, flag; float sum; scanf("%d", &n); flag= 1 ; sum=0; for(i=1;i<=n; i++ ) { sum+=(float)flag/i; flag=-flag ; } printf("%.3f\n", sum); }2、以下程序的功能是从键盘输入n个整数,统计其中正数、0、负数的个数,请填空。#include <>void main( ){int a, i, count1,count2,count3; count1=count2=count3=0 ;for(i=1;i<=n;i++){ scanf(“%d”, &a); if(a>0) count1++; else if(a==0) count2++ ; else count3++;}printf(“正数:&d个,零:%d个,负数:%d个\n”, count1,count2,count3 );}四、运行程序结果题(共4题,每题6分,共24分)1、写出程序运行结果。void main( ){ int x=1,y=2,t; int *p1,*p2; p1=&x; p2=&y; t=*p1;*p1=*p2;*p2=t;printf("x=%d,y=%d\n",x,y);}运行结果为:程序有错,不能运行!或写:x=2,y=12、写出程序运行结果。#include<>int max(int a,int b){ int c; c=a>b?a:b; return(c);}int min(int a,int b){int c; c=avoid main(){ int a[3][3]={1,2,3,4,5,6,7,8,9};int i,j,sum=0; for (i=0;i<3;i++) for(j=0;j<3;j++) if(i==j) sum=sum+a[i][j];printf(“sum=%d\n”,sum);}运行结果为:程序有错,不能运行!或写:sum=154、写出程序运行结果。void main( ){ int n,f; n=1; while(n<=10){ f=f*n; n+=2;} printf(“f=%d\n”,&f);}运行结果为:程序有错,不能运行!或写:f=不确定五、程序设计题(共2题,每题13分,共26分)1、将一个数组按逆序存放,如元素1、2、3、4、5,按逆序存放后为5、4、3、2、1。

vicki瑶瑶
#include <>
#include <>
#include <>
#define N 50
void reverse(int a[],int n) {
int i,t;
for(i = 0; i < n/2; ++i) {
t = a[i];
a[i] = a[n - 1 - i];
a[n - i - 1] = t;
}
}
void show(int a[],int n) {
int i,cnt = 0;
for(i = 0; i < n; ++i) {
if(i && i%10 == 0) printf("\n");
printf("%3d",a[i]);
++cnt;
}
printf("\n");
if(cnt%10) printf("\n");
}
int main() {
int i,a[N];
srand(time(NULL));
for(i = 0; i < N; ++i)
a[i] = rand()%100;
printf("逆置之前:\n");
show(a,N);
reverse(a,N);
printf("逆置之后:\n");
show(a,N);
return 0;
}
优质考试培训问答知识库