高级语言程序设计(C)模拟试题二一、单项选择题(每题3分,合计60分)1.自定义标识符中,符合C语言规定的是。
A. forB. 3aC. *aD. _1232.为表示关系100≥x≥10,应使用C语言表达式。
A. (100>=x)&&(x>=10)B. (100>=x) AND (x>=10)C. (100>=x>=10)D. (100>=x)&(x>=10);3.定义int a; float f; double i; 表达式15+i*f+ˊAˊ的值是。
A. floatB. intC. charD. double4.下面程序要求从键盘上输入值并打印,请选择正确的输入方法。
main( ){ int a,b;scanf("x=%d,y=%d",&x,&y);printf("x=%d,y=%d\n",x,y);}A. 5,6B. x=5, y=6C. 5↙6D. 5 65.定义如下变量和数组: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 9B. 1 4 7C. 3 5 7D. 3 6 96.在定义了 int a[3][2];之后,对a的引用正确的是。
A.a[3][2] B.a[3][0] C.a[0][0] D.a[0,0]7.执行以下程序段后,m的值为。
int a[2][3]={{1,2,3},{4,5,6}};int m,*p; p=&a[0][0];m=(*p)+(*(p+2))+(*(p+4));A. 9B. 8C. 7D. 68.若有以下定义和语句,则输出结果是。
char s1="12345",s2="1234"printf("%d\n",strlen(strcpy(s1,s2)));A. 4B. 5C. 9D. 109下面程序中能正确表示上面关系的是。
A. y=x+1;B. y=x-1;if(x>=0) if(x!=0)if(x==0) y=x; if(x>0) y=x+1;else y=x-1; else y=x;C. if(x<=0)D. y=x;if(x<0) y=x-1; if(x<=0)else y=x; if(x<0) y=x-1;else y=x+1; else y=x+1;10.以下正确的程序段是。
A. char str[2];B. char *p;scanf("%s",&str); scanf("%s",p);C. char str[20];D. char str[20],*p=str;scnaf("%s",&str[2]); scanf("%s",p[2]);11.以下正确的函数定义形式是。
A. double fun(int x,int y)B. double fun(int x;int y)C. double fun(int x,int y);D. double fun(int x,y); 12.以下有关宏替换不正确的是。
A. 宏替换不占用运行时间B. 宏名无类型C. 宏替换只是字符替换D. 宏名必须用大写字母表示13.有如下语句int a=10,b=20,*p1,*p2;p1=&a;p2=&b;如图1所示。
若要实现图2所示的存储结构,可选用的赋值语句是 。
A. *p1=*p2;B. p1=p2;C. p1=*p2;D. *p1=p2;14.设char *s="\ta\018bc";则指针变量s 指向的字符串所占的字节数 是 。
A. 9B. 5C. 6D. 715.以下程序的输出结果是 。
#include<>#include<>main( ){ char *s1="AbCbEf",*s2="AB";s1++;s2++;printf("%d\n",strcmp(s1,s2));}A. 正数B. 负数C. 零D. 不确定的值16.以下一维数组a 的正确定义是 。
A. int a(10);B. int n=10,a[n];C. int n;D. #define SIZE 10scanf("%d",&n); int a[SIZE];int a[n];17. 若有定义:int a[2][3];则对a 数组中第i 行第j 列元素地址的正确 引用为 。
A. *(a[i]+j)B. (a+i)C. *(a+j)D. a[i]+j18.以下程序段的输出结果是 。
p1p2 p1 p2a b a b图1 图2main(){ int n[3],i,j,k;for(i=0;i<3;i++)n[i]=0;k=2;for(i=0;i<k;i++)for(j=0;j<k;j++)n[j]=n[i]+1;printf("%d\n",n[1]);}A. 2B. 1C. 0D. 319.以下程序输出的结果是。
int d=1;fun(int p){ int d=5;d+=p++; printf("%d ",d);} main( ){ int a=3;fun(a);d+=a++;printf("%d\n",d);}A. 8 4B. 9 6C. 9 4D. 8 520. 若有以下说明和语句: struct student{ int number; char *name; }stu1,*p=&stu1;则以下引用方式不正确的是和。
A. stu1->numberB. (*p).numberC. p->numberD.E. *二、填空题(每题2分,合计20分)1.C程序是由构成的,其编译是以为单位进行的。
2.设a为int型变量,请写出描述"a是奇数"的表达式3.若数组a有m列,则a[i][j]之前的数组元素个数为。
4.请读程序片段:char str[]="english",*p=str;printf("%s\n",*(p+3));上面程序片段的输出结果是。
5.执行下面的程序段后,k值为。
k=1;n=263;do{k*=n%10; n/=10;} while(n);6. 变量的作用域是指变量的有效范围。
按作用域变量可分为变量和变量两大类。
7.设有程序片段:switch(ch ){ case ˊAˊ: printf("85-100\n");case ˊBˊ: printf("70-84\n");case ˊCˊ: printf("60-69\n");case ˊDˊ: printf("<60\n");default : printf("error!\n");}若ch的值为ˊDˊ,则输出结果是。
8.下面程序的功能是在三个字符串中找出最小的,请填空:#include<>#include<>main( ){ char s[20],str[3][20]; int i;for(i=0;i<3;i++) gets(str[i]);strcpy(s, );if(strcmp(str[2],s)<0) strcpy(s,str[2]);printf("%s\n", );}9.写出下列两种指针的定义:指针p1为指向整型数据的指针;p2为指向字符串"I am a student"的指针。
10.在一个源文件中定义的局部变量的作用域为。
三、阅读程序,按要求完成各题。
(20分)1.以下程序的功能是:利用函数求出用户输入的5个float型数据的平均值,请填空。
(4分)float func(float a[],int n){ int i;float sum=,ave;for(i=0; ;i++)sum= ;ave= ;return ( );}main( ){ int i; float a[5],average;for(i=0;i<5;i++)scanf("%f",&a[i]);average=func(a,5);printf("The average of five float is:%f\n",average);}2.下面程序是将数组a的内容逆置重放。
请填空:(6分)main(){ int a[8],i,j,t;printf("Input 8 number to the array:\n");for(i=0;i<8;i++)scanf("%d", );for(i=0;i<=3;i++){ j= ;t=a[i];a[i]=a[j]; ;}printf("\n The array has been invered:");for(i=0;i<8;i++) printf("%d ",a[i]);}3.以下程序的功能是:从键盘输入两个字符串,利用函数比较其是否相等,若相等返回1,否则返回0。
(6分)f(char s[],char t[]){ int i=0;while(s[i]==t[i] && s[i]!=ˊ\0ˊ) ;if(s[i]==ˊ\0ˊ&& ) return(1);else ; } main( ){ char a[6],b[7]; int i;scanf("%s%s",a,b);i=f(a,b);printf("%d\n",i);}4.输入一整数x,在数组a中查找x第一次出现的位置。
请填空。
(4分) #include<>main(){ int a[10]={10,24,34,55,9,17,87,22,9,19},x,i;printf(“Input an integer:”);scanf(" ",&x);for(i=0; ;i++)if( ) break;if( )printf("Not found.\n");elseprintf("Position is: %d\n",i);}参考答案一.选择题、E二.填空题1. 函数, 文件2. a%2!=0(或a%2==1)3. i*m+j4. lish 6.全局局部7.<60error!8. (strcmp(str[0],str[1])<0 str[0]:str[1]) s9. int *p1; char *p2="I am a student";10.该变量所在的函数三.阅读程序1.i<n sum+a[i] sum/n ave 2. &a[i] 8-i-1 a[j]=t 3.i++ t[i]==ˊ\0ˊ return(0) 4. %d i<10 a[i]==x i>=10。