一、单项选择题(每题2分,共30分)
1.下面的四个选项中,均不是合法的用户标识符的选项是( B )
A. B B. b-a C. float D. _123
M_0 goto 2ab temp
while int _A INT
2.有输入语句:scanf(“a=%d, b=%d, c=%d”, &a, &b, &c);为使变量a,b,c的值分别为1,3,2,从键盘上输入数据的正确形式应当是( B )
A.132 〈回车〉 B.a=1,b=3,c=2〈回车〉
C.a=1 b=3 c=a <回车> D.1,3,2 〈回车〉
3.如果输入信息为:1234567 则执行语句:scanf("%2d%2d",&x,&y); 之后,x,y的值为( A )
A. x为12,y为34 B. x为2,y为3
C. x为12,y为67 D.x为1234567,y为0
4.对于 for(表达式1;表达式2 ;表达式3) 语句的正确描述( B )
A.表达式2省略,循环不执行。
B.表达式3省略,可在循环体中修改循环控制变量,以保证正常退出。
C.三个表达式均不能省略。
D.三个表达式均不能省略。但分号可以省略。
5.以下叙述中错误的是( B )。
A.循环语句嵌套必须是同类型的语句
B.循环语句嵌套可以是同类型的语句,也可以不同类型
C.do_while循环语句和 while循环语句的程序执行方式都是相同的。
D.循环体中不能再有循环语句
6.有下面的程序段:
char a[ 3 ], b[ ] =”student”;
a=b;
printf (“ %s”,a);
则( D )
A.运行后将输出student ; C.运行后将输出b;
B.运行后将输出a D.编译出错
7.当数组作函数参数时,选出不正确的描述。( D )
A.实参数组与形参数组类型应一致。
B.数组元素做函数实参时,同变量做实参一样是参数传值。
C.形参数组可以不定义数组大小。
D.实参数组与形参数组大小必须一致,否则C编译会检查出错。
8.在C语言中,函数返回值的类型最终取决于( A )。
A.函数定义时在函数首部所说明的函数类型
B.return语句中表达式值的类型
C.调用函数时主调函数所传递的实参类型
D.函数定义时形参的类型
9.若有说明 int (*p)[3]; 则以下正确的描述( B )
A. p是一个指针数组。
B. p 是一个指针,它只能指向一个包含3个int类型元素的数组。
C. p是一个指针,它可以指向一个一维数组中的任意元素。
D. (*p)[3]与*p[3]等价。
10. 已知int b; 则对指针变量p正确的说明和初始化是:( 4 )
A. int *p=b; B. int p=b; C. int p=&b; D. int *p=&b;
11.若已定义了如下的共用体类型变量x,则x所占用的内存字节数为( C )
(设在16位pc机的环境下)
union data
{ int i;
char ch;
double f; }x;
A. 7 B. 11 C. 8 D. 10
12.设fp为指向某二进制文件的指针,且已经读到此文件末尾,则函数feof(fp)的返回值为( B )。
A.EOF B.非0值 C.0 D.NULL
13. C语言程序中,main函数的位置( D )。
A.在开头 B.在结尾 C.在中间 D.可以任意
14. int x=3; if(1<=2)if(0)x=4;else x=5;else x=6; 执行上述语句后x的值是( C ).
A.3 B.4 C. D.6
15. 以下叙述正确的是( C )
A.goto语句只能用于退出多层循环。
B.可以用continue语句来终止switch语句的执行。
C.break语句只能用在循环体内和switch语句体中。
D.在循环内使用break语句和continue语句的作用相同。
二、判断题(每题10分,共10分)
( × )1.若有代数式x2÷(3x+5), 则正确的C语言表达式为:x*x/3*x+5。
( √ )2.开发一个c语言的源程序要经过的四个阶段编辑、编译、连接,程序运行。
( × )3.int i=5, j, k; j=i++; k=i; 则 k的值为5。
( ×)4.已知:int s[][3]={1,2,3,4,5,6}; 此时数组元素s[1][1]的值为1。
( √ )5.字符串“hello”占用内存6字节。
( √ )6. C语言中,注释可以出现在源程序中空格可以出现的任何位置。
( ×)7. 强制类型转换,如(double)x,只改变原变量的类型,而不改变其值。
(× )8. 在C语言程序中,每个函数必须要有且只能有一个return语句。
(√ )9. 枚举类型变量只能取枚举定义中的枚举常量。
(√ )10. 联合类型是同一个存储空间,可以被几个不同数据类型的分量成员共享使用。
三、分析程序给出运行结果(每题5分,共25分)
1.执行下面程序之后,m的值为多少。
#include<stdio.h>
main()
{ static int a[2][3]={{1,2,3},{4,5,6}};
int m;
m=*(*(a+1)+1);
m=m*a[1][1];
printf("%d",m);
return 0;
}
答案:25
2.分析下面程序的运行结果。
#include<stdio.h>
main()
{ int i=1;
while(i<=10)
{ if (!(i%2)) printf("%d,",i);
i++;
}
}
答案:2,4,6,8,10
3.分析下面程序的运行结果。
#include<stdio.h>
main()
{char s[]="456789";
s[4]='/0';
printf("%s/n",s);
}
答案:4567
}
4. #include <stdio.h>
void main()
{ int a=2;
switch(a)
{ case 2:
case 3:a++;
case 4:a++;
default:a+=10;
}
printf("a=%d/n",a);
}
答案:a=14
5.分析下面程序的运行结果。
#include <stdio.h>
int f(int a);
int main()
{ int f(int);
int a=5,i;
for(i=0;i<3;i++)
{
printf("%d ", f(a));
}
return 0;
}
int f(int a)
{ auto int b=0;
static int c=3;
b = b+1;
c = c+1;
return (a+b+c);
}
答案:10 11 12
四、完善程序填空题(每题5分,共15分)
1. 输出所有的“水仙花数”,所谓“水仙花数”是指一个3位整数,其各位数字立方和等于该数本身。例如,153是一个水仙花数,因为153=13+53+33。
答:
#include <stdio.h>
void main()
{ int i,j,k,n;
printf("Narcissus number are: ");
for(n=100;n<1000 ;n++)
{ i=n/100;
j=n/10-i*10;
k=n%10;
if(n== i*i*i+j*j*j+k*k*k )
printf("%5d",n);
}
printf("/n");
}
2. 将原文件file1.c的内容读出并显示, 同时将其内容写入file2.c文件中。
#include<stdio.h>
main()
{ FILE *fp1,*fp2;
fp1=fopen("file1.c", "r" );
fp2=fopen("file2.c","w");
while(!feof(fp1))
putchar(getc(fp1));
rewind(fp1);
while(!feof(fp1))
putc( getc(fp1) ,fp2);
fclose(fp1);fclose(fp2);
}
3.用冒泡法对10个整数排序。
#include <stdio.h>
int main()
{ int a[10];
int i,j,t;
for (i=0; i<10; i++)
{
scanf("%d", &a[i]);
}
for(j=0;j<9;j++)
{ for(i=0;i<9-j;i++)
{
if (a[i] > a[i+1])
{
t = a[i];
a[i] = a[i+1];
a[i+1] = t;
}
}
}
五、编程题 (每题10分,共20分)
1. 请编制程序实现:从键盘输入一个字符串,将该字符串s中所有的字符c删除。
答:编程如下:
#include<stdio.h>
main()
{ char s[80];
int i,j;
gets(s);
for(i=j=0;s[i]!='/0';i++)
if(s[i]!='c')
s[j++]=s[i];
s[j]=’/0’;
puts(s);
}
2. 编写一个函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其他符的个数,在主函数中输入字符串以及输出上述的结果。
答:编程如下:
#include "stdio.h"
int n=0,m=0,k=0,o=0; //外部变量
void test(char str[]);
main()
{
char a[80];
printf("input string:");
gets( a);
test(a);
printf("/n字母数=%d 数字数=%d 空格数=%d 其他字符数%d/n",n,m,k,o);
return 0;
}
void test(str)
char str[];
{ int i;
for(i=0;str[i]!= '/0';i++)
{ if(str[i]>='a'&&str[i]<='z'|| str[i]>='A'&&str[i]<='Z')
n++; //n为字母数
else if( str[i]>='0'&&str[i]<='9')
m++; //m为数字
else if(str[i]==' ')
k++; //k为空格
else o++; //统计总字符数
}
}
来源:网络整理 免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。
相关文章:
期货公司申请金融期货结算业务资格,应当向中国证券监督04-27
电大《初级会计》期末复习资料(解析)04-27
期货公司停业的,应当向中国证券监督管理委员会提交的材04-27
下列关于期货公司首席风险官报告义务的表述,正确的有()。04-27
高一年级必修二生物知识点04-27
国内某出口企业3个月后将收到一笔日元出口货款,则可用04-27
高一数学上册教案范例5篇04-27
高一年级语文必修三知识点总结04-27
外汇期权合约中规定卖出的货币,其利率越高,期权持有者在04-27
高一年级必修二物理知识点04-27