资源描述
期末12套
选择题(3*10=30)
1.一个C语言程序是由()。
A、若干过程组成
B、若干子程序组成
C、一个主程序和若干子程序组成
D、函数组成
2.下述错误的C语言常量是:( ).
A、0xf
B、5.
C、090
D、.25
3.已定义两个字符数组a,b,则以下正确的输入格式是( )。
A、scanf("%s%s", &a, &b);
B、scanf("%s%s", a, b);
C、get(a, b);
D、gets("a"),gets("b");
4.下面程序的输出结果是:( ).
main()
{ int i=2, p;
p=f(i,i+1);
printf("%d", p);
}
int f(int a, int b)
{ int c;
c=a;
if(a>b) c=1;
else if( a==b) c=0;
else c=-1;
return c;
}
A、0
B、-1
C、2
D、1
5.以下for循环的执行次数是 for(x=0,y=0;(y=123)&&(x<4);x++);()。
A、3次
B、循环次数不定
C、4次
D、是无限循环
6.以下不能正确定义二维数组的选项是()。
A、int a[2][]={{1,2},{3,4}};
B、int a[2][2]={{1},2,3};
C、int a[2][2]={{1},{2}};
D、int a[][2]={1,2,3,4};
7.如果在一个函数中的复合语句中定义了一个变量,以下正确的说法是( ).
A、该变量在本程序范围内均有效
B、该变量在主函数中有效
C、该变量只在该复合语句中有效
D、该变量在该函数中有效
8.设有宏定义#define MAX(x,y) (x)>(y)?(x):(y),则F=4*MAX(2,3)的值为( ).
A、3
B、2
C、12
D、8
9.设有以下定义:
int w[2][3],(*pw)[3];
pw=w;
则对w数组元素非法引用是( ).
A、*(pw+1)[2]
B、*(pw[1]+2)
C、pw[0][0]
D、*(w[0]+2)
10.使用共用体变量,不可以()。
A、同时访问所有成员
B、进行动态管理
C、节省存储空间
D、简化程序设计
判断题(2*10=20)
1.在C程序中,main函数必须位于程序的最前面
2.语句scanf("%7.2f",&a);是合法的。
3.C语言的输入、输出功能是由系统提供的输入、输出语句实现的.
4.格式字符%x用来以十六进制形式输出整数.
5.设u=1,v=2,w=3,则逻辑表达式u||v-w&&v+w的值为0.
6.已知a=3,b=4,c=5,则逻辑表达式a||b+c && b-c的值为0.
7.do-while的循环体不能是复合语句.
8.while循环的循环体至少执行一次,而不论while表达式的值是"真"或"假".
9.语句 char ch[10]={"C Program"};与语句 char ch[ ]="C Program";具有相同的赋初值功能.
10.C语言中引用数组元素的方括号可以用花括号代替.
填空题(3*10=30)
1.C语言的三种基本结构是_____结构、选择结构、循环结构.
2.int x; x=(3+4)%5-6, 则x的值为_____.
3.在C语言中的实型变量分为两种类型,它们是float型和_____型.
4.在微机中,字符的比较就是对它们的_____进行比较。
5.设x=4<4-!0,x的值为_____.
6.c语言表达式!(4>=6)&&(3<=7)的值是_____.
7.设a,b,c,t为整型变量,初值为a=3,b=4,c=5,执行完语句t=!(a+b)+c-1&&b+c/2 后,t的值是_____.
8.int x=2,y=3,z=4; 则表达式x+(y>!z)的值为_____.
9.程序段int k=10; while(k=0) k=k-1;循环体语句执行_____次.
10.复制字符串的库函数是_____,只写函数名即可.
程序设计题(10*2=20)
1./*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:求1到10之间(包括10)的偶数之积。
------------------------------------------------*/
#include "stdio.h"
double fun(int m)
{
/*********Begin**********/
/********** End **********/
}
void TestFunc()
{
FILE *IN,*OUT;
int iIN,i;
double dOUT;
IN=fopen("23.in","r");
if(IN==NULL)
{
printf("Please Verify The Currernt Dir..It May Be Changed");
}
OUT=fopen("23.out","w");
if(OUT==NULL)
{
printf("Please Verify The Current Dir.. It May Be Changed");
}
for(i=0;i<10;i++)
{
fscanf(IN,"%d",&iIN);
dOUT=fun(iIN);
fprintf(OUT,"%f\n",dOUT);
}
fclose(IN);
fclose(OUT);
}
main()
{
printf("ji=%f\n",fun(10));
TestFunc();
}
2./*------------------------------------------------
【程序设计】
--------------------------------------------------
完成函数int fun(int m) 判断m是否为素数,如果是
素数函数输出1,否则输出0。
主函数调用时,m是素数显示"yes" 不是素数显示"no"。
-------------------------------------------------*/
#include "stdio.h"
int fun( int m)
{
/*********Begin**********/
/********** End **********/
}
void main( )
{
int m,i,a[10];
FILE *IN,*OUT;
printf("请输入m的值:");
scanf("%d",&m);
if(fun(m))
printf("yes\n");
else
printf("no\n");
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("输入文件打开失败!");
return;
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("输出文件打开失败!");
return;
}
for(i=0;i<10;i++)
{
fscanf(IN,"%d",&a[i]);
fprintf(OUT,"%d\n",fun(a[i]));
}
fclose(IN);
fclose(OUT);
}
答案
选择题
1-5 DCBBC
6-10 ACBAA
判断题(1代表正确 0代表错误)
1-5 00010
6-10 00010
填空题
1.【参考答案】
顺序
2.【参考答案】
-4
3.【参考答案】
double
双精度
4.【参考答案】
ASCII码值
ASCII码
ASCII
5.【参考答案】
0
6.【参考答案】
1
7.【参考答案】
1
8.【参考答案】
3
9.【参考答案】
3
10.【参考答案】
Strcpy
程序设计题
1.【参考代码】
double y=1;
int i;
for(i=1;i<=m;i++)
if(i%2==0)y*=i;
return y;
2.【参考代码】
int i,y=1;
for(i=2;i<=m-1;i++)
if(m%i==0)
{ y=0;
break;
}
return y;
展开阅读全文