选择题(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)35. 一般情况下,C语言是以()表示运算结果为逻辑真。
A)F B)T C)1 D)06. 设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)208. int *p1,*p2; 以下表达式错误的是( )。
A)p1+p2 B)p1-p2 C)p1=p2 D)p1= =p29. 设有如下定义: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 ) 6B ) 5C ) 3D ) 213. 在嵌套使用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+iD ) 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],使用输入语句能将键盘输入的字符串送到数组中。
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>#includevoid 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){}(此文档部分内容来源于网络,如有侵权请告知删除,文档可自行编辑修改内容,供参考,感谢您的配合和支持)。