2020 年广西桂林理工大学 C 语言程序设计考研真题 A 卷一、选择题(每小题 2 分,共 30 分)1.以下( ) 是错误的整型常量。A. -0xabcdef B. 018 C. 0x29 D. 0112.为了判断两个字符串 s1 和 s2 是否相等,应当使用( )。A. if(s1==s2) B. if(s1=s2) C. if(strcmp (s1,s2) == 1) D. if(strcmp(s1,s2) == 0)3.以下scanf函数调用语句中错误的是 ( )。 struct student { char name[20]; int age; }pup[5], *p; p=pup;A. scanf("%d", p->age); B. scanf("%s", pup[1].name);C. scanf("%d", &(p->age)); D. scanf("%s", p->name);4. 以下程序运行结果( )。 #include int main( ) { int sum=0,item=0; while (item<5) { item++; sum+=item; if(sum>=8) break; } printf("%d\n",sum) ; return 0;}A. 15 B. 10 C. 6 D. 95.下面程序段的运行结果是( )。#include int main( ){ int i=0, a[]={3,4,5,4,3}; do{ a[i]++; }while(a[++i]<5); for(i=0;i<5;i++) printf("%d ",a[i]); return 0;}A. 4 5 6 5 4 B. 3 4 5 4 3 C. 4 5 5 5 4 D. 4 5 5 4 36.以下程序的输出结果是( )。 #include int main( ){ int a[9]={1,2,3,4,5,4,3,2,1};int *p,*q,i,x;p=&a[0]; q=&a[8];for (i=0;i<=4;i++)if(*(p+i) == *(q-i) ) x=*(p+i)*2;printf("%d\n",x);return 0;}A. 2 B. 18 C. 10 D. 不确定7.以下程序段的运行结果是( )。 #include int main( ){ int a[12]={1,2,3,4,5,6,7,8,9,10,11,12}, *p[4],i; for(i=0;i<4;i++) p[i]=&a[i*3]; printf("%d\n",p[3][2]); return 0;}A. 11 B. 12 C. 8 D. 98.要把一个函数计算结果的两个整型数据返回给主调函数,在下面的方法中不正确的是( )。A. 用两个return语句 B. 形参用数组,该数组包含两个整型数据C. 形参用两个整型的指针 D. 用两个整型全局变量9.若已定义:int a[ ]={0,1,2,3,4,5,6,7,8,9},*p=a, i=3; 则对a数组元素不正确的引用是 ( )。 A.a[p-a] B.p[i] C.*(&a[i]) D.a[p+a]10.下列程序段的输出结果是( )。#include #include int main( ){char s[20]="abcd",*p2="ABCD",str[50]="xyz";strcpy(str+2, strcat(s+2,p2+1));printf("%s\n", str); return 0;} A. xyabcAB B. abcABz C. ABabcz D. xycdBCD11.若有定义:int a=7; double x=2.5,y=4.7; 则表达式 x+a%3*(int)(x+y)%2/4 的值是( )。A. 2.500000 B. 2.750000 C. 3.500000 D. 0.00000012.对于语句 int *p[10]; ,以下说法正确的是( )。 A. p 是一个指针,指向一个数组,数组的元素是整型数据 B. p 是一个指针,指向一个数组,数组中有 10 个整型数据 C. p 是一个数组,它的每一个元素是指向整型数据的指针D. p 是一个数组,它的每一个元素是指向 10 个整型数据的指针13.下面程序的输出结果是( )。 #include #include int main ( ){ int i; char *s= "abcd"; for ( i=0 ; i