一、选择题(本题共15小题,每小题2分,共30分)
1. C程序的基本组成单位是 B 。
A)程序 B)函数 值为 A 。
A) 0 B) 1 C) 5 D) 7
8. 下列 A 描述的全是C语言中的基本数据类型。
C)子程序 D)文件 2. C语言中的整数变量在内存中占 C 个字节。
A) 0 B) 1 C) 2 D)4
3. 设int i=3;与函数f(i, ++i)等价的调用语句为 D 。
A) f(3,3) B) f(3,4) C) f(4,3) D) f(4,4) 4. 在循环语句的循环体中执行continue语句,其作用是 C 。
A) 跳出该循环体,提前结束循环 B) 继续执行该语句之后的循环体各语句
C) 结束本次循环,进行下次循环 D) 终止程序运行
5.下列标识符中不合法的变量名是 D 。
A)class3 B)length C)_2abc D)long
6.C语言的一个源文件中定义的全局变量的作用域为 D 。
A)本文件的全部范围 B)本程序的全部范围
C)本函数的全部范围 D)从定义该变量的位置开始至本
文件结束
7. 设a、b、c、d、m、n均为int型变
量,且a=3、b=6、c=7、d=8、m=2、
n=5,则逻辑表达式
(m=a>b)&&(n=c>d)运算后,n的
1 / 4
A) 字符型、整型 B) 字符型、数组 C)整型、结构体 D) 浮点型、共用体
9.下面定义了共用体类型的变量x,则sizeof(x)的值为 D 。 union { char c[10]; int b; float e; } x;
A) 16 B) 4 C) 2 D) 10
10.已知a,b为整型变量,a=2,b=1,则表达式(a=b+2,a+b)的值是 D 。 A) 2 B) 6 C) 3 11.当调用函数时,实参和形参是数组名,则向被调用函数传送的是 B 。
A) 数组的长度
B) 数组首元素的地址
C) 数组的值 D) 数组每个元素中的值 12. 能正确表示逻辑关系:“x≤10或x≥20”的C语言表达式是 ( B ) A) x<=10 or x>=20 B)
x>=20||x<=10 C) x>=10 && x<=20 D)
x
?10 and x?20
13.设有以下说明语句,则下面正确的
引用是 C 。
struct student
{ int num; char name[10]; float
score;} s1;
A) struct.score B) student.score
C) s1.name D) s1[2].name
D) 4
14. 设p是指向字符型数据的指针变
量,与p++等价的语句是 A 。
A)p=p+1; B)p=p+2; p=s;
while(*p++!= '\\0' ) n++;
printf(“n=%d\\n”,n); C)p=p+3; D)p=p+4; 15. 若己定义:int
a[ ]={0,1,2,3,4,5,6,7,8,9},*p=a, i; 其中 0≤i≤9, 则对 a中数组元素不正确的引用是 C 。 A) *p B) *(a+i) C) a+i
D) p[i]
二、读程序,严格按照程序写出输出结果(本题共5小题,每小题4分,共20分) 1. #include
void main( )
{ int i,s=0;
for(i=1;i<10;i+=3) s+=i; printf("%d\\n",s); }
程序执行后的输出结果是 12 2. #include
int a[ ][3]={{1,2,3},{4,5,6},{7,8,9}};
for(i=0;i<3;i++) for(j=0;j<3;j++) if(i!=j) s=s+a[i][j]; printf(\}
程序输出结果: s=30 3. #include
void main( )
{ char *p,s[ ]=\are a stud
ent\
int n=0;
2 / 4
}
程序输出结果: n=17
4. #include
程序输出结果: s=9
5. struct stu{ char name[10]; int num; int score; };
void main( ) { struct stu
s[5]={{“yangsan”,2041,703},{“licuan”,2042,580},
{“zhangyue”,2043,6
80},{“sunyue”,2044,550},
{“pengli”,2045,537}
},*p[5],*t;
int i,j;
for(i=0;i<5;i++) p[i]=&s[i]; for(i=0;i<4;i++)
for(j=i+1;j<5;j++)
if(p[i]->score>p[j]->score) { t=p[i]; p[i]=p[j]; p[j]=t; }
printf(“%d,%d”,s[1].score,p[1]->score);
}
则程序输出结果为: 580,550
三、程序填空题(本题共4小题,每空3分,共30分)
1. 用以下程序计算
0+5+10+15+……+100的累加和。请填空。
#include
for( i=0; i<=100; i=i+5 ) sum+=i;
printf(″sum=%d\\n″,sum); }
2. 找出一维数组a[10]中的最大值,返回最大值的下标。 #include
for(max=a[0],i=1;i<10;i++)
if( a[i]>max ) { max=a[i]; j=i ; }
return( j ); }
3. 函数count( )统计链表中结点的个数,head为头指针。
#include
struct student *p;
3 / 4
p=head;
while( p!=NULL ) { n++;
p=p->next ; } return(n); }
4. 用0到9之间不同的3个数构成一个3位数,统计共可以得到多少个数。
void main( ) { int i,j,k,count; count=0; for(i=1;i<10;i++) for(j=0;j<10;j++)
if( i==j ) continue; else for(k=0;k<10;k++)
if( k!=i&&k!=j )
count++;
printf(“count=%d\\n”,count); }
四、编程题(本题共3个小题,第1、2小题6分,第3小题8分,共20分)
1. 输入一个无符号整数,求出它的位数以及各位数之和并输出。(例如若输入123,则各位之和为6)
# include
unsigned m,ws=0,p=0; scanf(“%u”,&m); do { ws++; p=p+(m); } while(m/=10);
printf(“%d\\t%u\\n”,ws,p); }
相关推荐: