资源描述
得分
一、 选择题(30%:15小题,每小题2分)
1. 在一个C程序中( )。
A) main函数必须出现在所有函数之前 B) main函数可以在任何地方出现
C) main函数必须出现在所有函数之后 D) main函数必须出现在固定位置
2. C语言中最基本的数据类型包括( )。
A) 整型、浮点型、逻辑型 B) 整型、浮点型、字符型
C) 整型、字符型、逻辑型 D) 整型、浮点型、逻辑型、字符型
3. 以下二维数组 a 的正确说明是 ( )。
A) int a[1,1]; B) float a(3,4);
C) double a[2][4]; D) float a(3)(4);
4. 设有:int a=2,b=3,c=7,d=8,m=3,n=3; 执行 (m=a>b)&&(n=c>d) 后的 n 值为( )。
A) 0 B) 1 C ) 2 D) 3
5. 一般情况下,C语言是以( )表示运算结果为逻辑真。
A) F B) T C) 1 D) 0
6. 设a、b和c都是int型变量,且a=3,b=4,c=5;则以下的表达式中,值为0的表达式是 ( )。
A) a&&b B) a<=b C) a||b+c&&b-c D) !((a<b)&&!c‖1)
7. 若x=4,则x*=x+2的值为 ( )。
A) 36 B) 24 C) 18 D) 20
8. int *p1,*p2; 以下表达式错误的是 ( )。
A) p1+p2 B) p1-p2 C) p1=p2 D) p1= =p2
9. 设有如下定义:
struct sk
{ int a;
float b;
}data;
int *p;
若要使p指向data中的a域,正确的赋值语句是 ( )。
A) p=&a; B) p=data.a; C) p=&data.a; D) *p=data.a;
10. 下面各项中,含有错误的是( )。
A) char s[10];
s="program";
B)char s[ ]={ 'p ', 'r ', 'o ', 'g ', 'r ', 'a ', 'm', '\0'};
C ) char s[10] ="program";
D)char s[10]={"program"};
11. while(leap) 和下列哪个等价?( )
A) while (0) B) while (5)
C) while (leap= =0) D) while (leap!=0)
12. 有以下程序:
main()
{
int i,t[][3]={9,8,7,6,5,4,3,2,1};
printf("%d",t[2][1]);
}
执行后的输出结果是( )。
A) 6 B) 5 C) 3 D) 2
13. 在嵌套使用if语句时,C语言规定else总是( )。
A) 和之前与其具有相同缩进位置的if配对。
B) 和之前与其最近的if配对。
C) 和之前与其最近的且不带else的if配对。
D) 和之前的第一个if配对。
14. 设有字符数组str[20],以下哪条输入语句能将键盘输入的字符串送到数组中?( )
A) scanf(“%c”,str); B) gets(str);
C) getchar(str); D) scanf(“%s”,str[0]);
15. 设指针变量p指向数组a的首地址,则以下哪个选项与其他三个选项不等价?( )
A) *(p+i) B) *(a+i) C) p+i D) a[i]
得分
二、 填空题(20%:20空,每空1分)
1. C 源程序的基本单位是_ _ _____。
2. 根据变量的作用域,C语言的变量分为 和 。
3. 在 C 语言中,将一个变量的地址称为该变量的__ ____;如果有一个变量专门用来存放另一个变量的地址,则称它为 。
4. 简单变量作为函数参数时,其参数传递方式为__ _ ____。
5. 设 x, y, z 均为 int 型变量,则描述“ x或y中有一个小于z ”的表达式是
__ __。
6. 若函数定义为:
int data()
{ float x=9.9;
return(x); }
则函数返回的值是___ _____。
7. 设int a[4]={1,3,5,7};则*(a+2)的值为____ ____。
8. 设y是int型变量,请写出判断y为奇数的关系表达式 。
9. 设有定义:int n,*k=&n;
以下语句利用指针变量k读写变量n中的内容,请将语句补充完整。
scanf("%d",___ _____);
printf("%d\n",__ ____);
10. 以下函数的功能是:把两个整数指针所指的存储单元中的内容进行交换。请填空。
void exchange(int *x,int *y)
{ int t;
t=*y;
*y=__ __;
*x=____ _;
}
11. 设有定义:int a=3,*p; 则能使指针变量p指向变量a的语句是___ __ ___。
12. 设i=3,执行表达式“m=++i”后m的值是 。
13. 在C语言中,表达式1/2的值是 ,表达式1.0/2 的值是 。
14. 将一个C源程序变为可执行的目标程序要经过 和连接。
15. 设有字符数组str[20],使用输入语句 能将键盘输入的字符串送到数组中。
得分
三、 阅读程序,写出运行结果。(20%:4小题,每小题5分)
1.
main()
{ int i=0,s=0;
while(i<5)
{ if(i%2= =1)
{ i++; continue; }
i++;
s=s+i;
}
printf("s=%d", s);
}
程序运行后输出: 。
2.
main()
{ int n1,n2;
scanf(“%d”,&n2);
while(n2!=0)
{ n1=n2%10;
n2=n2/10;
printf(“%d”,n1);
}
}
程序运行后,若输入1298,则输出: 。
3.
main()
{ int a[10]={2,4,0,-5,1,6,-8,5,6,5};
int i,s=0,count=0;
for(i=0; i<10; i++)
if(a[i]>0)
{ s=s+a[i];
count++;
}
printf ("s=%d,count=%d",s,count);
}
程序运行后输出: 。
4.
main()
{ int a[6]={4,5,8,3,6,1};
int j,t;
for(j=0; j<5; j++)
if(a[j]>a[j+1])
{ t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
for(j=0; j<6; j++)
printf("%d ",a[j]);
}
程序运行后输出: 。
得分
四、 程序填空(根据给出的程序功能说明,补充完整程序中缺少的代码,每一空行只填写一条语句或一个表达式,不写、多写、错写不给分。)(16%:3小题,共8空,每空2分)
1. 鸡兔共有30只,脚共有90只,下面程序段是计算鸡兔各有多少只。
for( x=0; x<=30; x++)
{ y=30-x;
if(______________)
printf(“_______________\n”, x, y):
}
2. 数组a包括10个整型元素。下面程序的功能是求出a中各相邻两个元素的和,并将这些和存在数组b中,按每行3个元素的形式输出。
main()
{ int a[10],b[10], i;
for(i=0; i<10; i++)
scanf(“%d”,&a[i]);
for (__________; i<10; i++)
__________________;
for(i=1; i<10; i++)
{ printf(“%3d”, b[i]);
if (___________==0) printf(“\n”);
}
}
3. 下面程序的功能是:将字符数组a中下标值为偶数的元素从小到大排列,其它元素不变。请在下划线处填写适当内容,使程序能正常运行。
#include <stdio.h>
#include
void main()
{ char a[ ]="clanguage", t;
int i, j, k;
k=strlen(a);
for( i=0; i<=k-2; i+=2 )
for( j=i+2; j<=k-1; )
if( )
{ t=a[i]; a[i]=a[j]; a[j]=t; }
printf("%s",a);
printf("\n");
}
得分
五、 程序设计(14%:2小题,每小题7分)
1.编写程序,要求从键盘输入一个无符号整数x,并判断是否为素数,如果是打印yes,否则打印no。
2. 编写函数
int sum(int a[],int n);
该函数返回数组a中a[0]~a[n-1]的和。比如设有数组x[]={1,2,3,4,5,6,7,8,9,10},则函数调用sum(x,10)的结果等于55。
int sum(int a[],int n)
{
}
(注:专业文档是经验性极强的领域,无法思考和涵盖全面,素材和资料部分来自网络,供参考。可复制、编制,期待你的好评与关注)
展开阅读全文