1.C语言结构体类型变量在程序执行期间(A)
a)所有成员一直驻留在内存中
b)只有一个成员驻留在内存中
c)部分成员驻留在内存中
d)没有成员驻留在内存中
2. 以下不能正确定义二维数组的选项是(A )
A. int a[2][] = {{1, 2}, {3, 4}};
B. int a[][2] = {1, 2, 3, 4};
C. int a[2][2] = {{1}, 2, 3};
D. int a[2][2] = {{1}, {2}};
3. 一个C语言程序是由(函数 )组成
4.从键盘上输入某字符串时,不可使用的函数是(A).
(A).getchar()
(B).gets()
(C).scanf()
(D).fread()
5.若要说明一个类型名STP,使得定义语句STP s等价于char *s,以下选项中正确的是(D)
A) typedef STP char *s; B) typedef *char STP;
C) typedef stp *char; D) typedef char* STP
6.设a,b均为double型常量,且a=5.5,b=2.5则表达式(int)a+b/b的值是(6)
7.若有定义:int a[5],*p=a; 则对a数组元素地址正确引用的是(B)。
A &a[5]
B p+2
C a++
D &a
8.C语言中 while 和 do-while 循环的主要区别是(A).
(A).do-while 的循环体至少无条件执行一次
(B).while的循环控制条件比 do-while的循环控制条件更严格
(C).do-while 允许从外部转到循环体内
(D).do-while 的循环体不能是复合语句
9.以下叙述正确的是(D).
(A).do-while语句构成的循环不能用其它语句构成的循环来代替.
(B).do-while语句构成的循环只能用break语句退出.
(C).用do-while语句构成的循环,在while后的表达式为非零时结束循环.
(D).用do-while语句构成的循环,在while后的表达式为零时结束循环
10.对于void类型函数,调用时不可作为(D)。
A:自定义函数体中的语句
B:循环体里的语句
C:if语句的成分语句
D:表达式
11.若有以下定义:char s='\092'; 则该语句(B)。
A:使s的值包含1个字符
B:定义不合法,s的值不确定
C:使s的值包含4个字符
D:使s的值包含3个字符
12.下面字符序列中可用作c语言程序标识符得一组字符序列是(D)
a)S.B,sum,aberage,_above
b)glass,month,cccc_1,4times
c)#aq,&77y,sprit,teach_01
d)W18,w_1_8,name,cf_1
13.以下叙述正确的是(C).
(A).在C程序中,main函数必须位于程序的最前面
(B).C程序的每行中只能写一条语句
(C).C语言本身没有输入输出语句
(D).在对一个C程序进行编译的过程中,可发现注释中的拼写错误
14.下列语句的结果是(D).
main()
{ int j;
j=3;
printf("%d,",++j);
printf("%d",j++);
}
滑竿(A).3,3
(B).3,4
(C).4,3
(D).4,4
15.以下运算符中优先级最低的是(C)
A:&&
B:&
C:||
D:|
16.C语言源程序的基本单位是(函数)
17.下面有关 for 循环的正确描述是(D).
(A).for 循环只能用于循环次数已经确定的情况
(B).
for 循环是先执行循环循环体语句,后判断表达式
(C).在 for 循环中,不能用 break 语句跳出循环体
(D).for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
word三线表18..先用语句定义字符型变量c,然后要将字符a赋给c,则下列语句中正确的是(A).
(A).c='a';
(B).c="a";
(C).c="97";
(D).C='97'
19.下面选择中正确的赋值语句是(设char a[5],*p=a;)(A)。
A:p="abcd";
B:a="abcd";
C:*p="abcd";
D:*a="abcd";
20.下列语句中,不正确的是(C)。
A:static char a[2]={1,2};
B:static int a[2]={'1','2'};
C:static char a[2]={'1','2','3'};
D:static char a[2]={'1'};
21.若k为int型变量,则以下程序段的执行结果是(B).
k=-8567; printf("|%06D|\n",k);
(A).格式描述符不合法,输出无定值
(B).输出为|%06D|
(C).输出为|0-8567|
(D).输出为|-8567|
22.在执行fopen函数时,ferror函数的初值是(0)
23.以下不能正确定义二维数组的选项是(D).
(A).int a[2][2]={{1},{2}};
(B).int a[][2]={1,2,3,4};
(C).int a[2][2]={{1},2,3};
(D).int a[2][]={{1,2},{3,4}};
24.以下不符合C语言语法的赋值语句是(A)。
A:a=1,b=2
B:++j;
C:a=b=5;
D:y=(a=3,6*5);
25.以下正确的说法是(B)。
A:用户若需调用标准库函数,调用前必须重新定义
B:用户可以重新定义标准库函数,若如此,该函数将失去原有含义
C:系统根本不允许用户重新定义标准库函数
D:用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调
26.若x=2,y=3则x&y的结果是(B)。
A:0
B:2
C:3
D:5
27.下列叙述中正确的是(D)。
A:C语言编译时不检查语法
B:C语言的子程序有过程和函数两种
C:C语言的函数可以嵌套定义
D:C语言所有函数都是外部函数
28.假设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值是(C)
A、7
B、8
C、9
D、10
29.运算符优先级:算术>关系>赋值
30.C语言中的标识符只能由字母、数字和下划线3中字符组成,且第一个字符必须为(C)
A)必须为字母
B)必须为下划线
C)必须为字母或下划线
D)可以是字母、数字和下划线中的任意一种字符
31.下列运算符中,不属于关系运算符的是(D)
A.<
B.>=
C.==
D.!
32.用下列语句定义a,b,c,然后执行b=a、c='b'+b,则b,c的值是(C)。
long a=0xffffff;
int b; char c;
A:0ffffff 和0x61
B:-1和98
C:-1和97
D:指向同一地址
33.函数ftell(fp)作用是:(A)
A.得到流式文件 中的当前位置
B.移动流式文件 的位置指针
C.初始化流式文件 的位置指针
D.以上答案均正
确
34.以下叙述中错误的是(A)
A.可以通过typedef增加新的类型
B.可以用typedef将已存在的类型用一个新的名字来代表
C.用typedef定义新的类型名后,原有类型名仍有效
D.用typedef可以为各种类型起别名,但不能为变量起别名
35.下面叙述中正确的是(C)
A对于用户自己定义的函数,在使用前必须加以声明
B声明函数时必须明确其参数类型和返回类型
C函数可以返回一个值,也可以什么值也不返回
D空函数在不完成任何操作,所以在程序设计中没有用处
36.若有说明:int a[3][4];则数组a中各元素是(C)
a.可在程序的运行阶段得到初值0
b.可在程序的编译阶段得到初值0
c.不能得到确定的值
d.可在程序 编译或运行阶段得到初值0
37.C语言中 while 和 do-while 循环的主要区别是(A)。
A:do-while 的循环体至少无条件执行一次
B:while的循环控制条件比 do-while的循环控制条件更严格
C:do-while 允许从外部转到循环体内
D:do-while 的循环体不能是复合语句
38.若有下列定义,则对a数组元素地址的正确引用是(B)。
int a[5],*p=a;
A:&a[5]
B:p+2
C:a++
D:&a
39.若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是(C)。
A:1
B:2
C:2.0
D:2.5
40.以下叙述正确的是(C).
(A).在C程序中,main函数必须位于程序的最前面
(B).C程序的每行中只能写一条语句
(C).C语言本身没有输入输出语句
(D).在对一个C程序进行编译的过程中,可发现注释中的拼写错误
41.设a和b均为double型常量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是(D)
A) 6.500000
B) 6
C) 5.500000
D) 6.000000
42.以下运算符中,优先级最高的运算符是(B).
A ?:
B ++
C &&
D ,
-【程序设计】
-------------------------------------------------
功能:编写函数fun计算下列分段函数的值:
x^2+x+6 x<0且x≠-3
f(x)= x^2-5x+6 0≤x<10且x≠2及x≠3
x^2-x-1 其它
------------------------------------------------*/
#include "stdio.h"
float fun(float x)
{ /**********Program**********/
float y;
if (x<0 && x!=-3.0)
y=x*x+x+6;
el if(x>=0 && x<10.0 && x!=2.0 && x!=3.0)
y=x*x-5*x+6;
el y=x*x-x-1;
return y;
/********** End **********/
}
main()
{ float x,f;
printf("Input x=");
scanf("%f",&x);
f=fun(x);
printf("x=%f,f(x)=%f\n",x,f);
getch();
yzj();
}
--------------------------------------------------
功能:从键盘上输入任意实数,求出其所对应的函数值。
z=e的x次幂(x>10)
z=log(x+3) (x>-3)
z=sin(x)/((cos(x)+4)
------------------------------------------------*/
#include <math.h>
#include<stdio.h>
double y(
float x)
{ /**********Program**********/
double z;
if(x>10) z=exp(x);
el if(x>-3) z=log(x+3);
el z=sin(x)/(cos(x)+4);
return(z);
/********** End **********/
}
main()
{ float x;
scanf("%f",&x);
printf("y=%f\n",y(x));
yzj();
getch();
}
功能:编写函数判断一个整数能否同时被3和5整除,若能
则返回值为1,否则为0。调用该函数求出15~300之
间能同时被3和5整除的数的个数。
------------------------------------------------*/
#include "stdio.h"
int sum(int n)
{ /**********Program**********/
羽衣甘蓝菜
if(n%3==0&&n%5==0) return(1);
return(0);
/********** End **********/
}
main()
{ int i,s=0;
for(i=15;i<=300;i++)
if(sum(i)==1) s=s+1;
printf("s=%d\n",s);
yzj();
getch();}
------------------------------------------------*/
功能:能计算从1开始到n的自然数的和,n由键盘输入,
并在main()函数中输出。
------------------------------------------------*/
#include "stdio.h"
int fun(int n)
{ /**********Program**********/
int sum,i;
sum =0;
for(i=1;i<=n;i++)
{sum=sum+i;}
return(sum);
/********** End **********/
}
main()
{ int m;
printf("Enter m: ");
scanf("%d", &m);
printf("\nThe result is %d\n", fun(m));
yzj();
getch();
}
------------------------------------------------*/
功能:求1到w之间的奇数之和。(w是大于等于100小于等
于1000的整数)
------------------------------------------------*/
#include "stdio.h"
#include"conio.h"
long fun(int w)
{ /**********Program**********/
long y=0;
int i;
for(i=1;i<=w;i++)
if(i%2==1)y+=i;
return y;
/********** End **********/
}
螃蟹炒年糕的做法
main()
{ int m;
printf("Enter m: ");
scanf("%d", &m);
printf("\nThe result is %ld\n", fun(m));
yzj();
getch();
}
喝藏红花的禁忌功能:求1到100之间的偶数之积。
------------------------------------------------*/
#include "stdio.h"
double fun(int m)
{ /**********Program**********/
double y=1;
int i;
for(i=1;i<=m;i++)
if(i%2==0)y*=i;
return y;
/********** End **********/
}
----------------------------------------------
功能:若x、y为奇数,求x到y之间的奇数和;若x、y为偶
数,则求x到y之间的偶数和。
------------------------------------------------*/
#include "stdio.h"
main()
{ int s,i,j;
s=fun(1,1999)-fun(2,1998);
printf("s=%d\n",s);
getch();
yzj();
}
int fun(int x,int y)
{ /**********Program**********/
int i,s=0;
for(i=x;i<=y;i+=2)
s=s+i;
return s;
/********** End **********/
}
--------------------------------------------------
功能:根据整型形参m,计算如下公式的值:
y=1/5+1/6+1/7+1/8+1/9++1/(m+5)
例如:若m=9,则应输出:1.168229
-
-----------------------------------------------*/
#include "stdio.h"
double fun(int m)
{
/**********Program**********/
double y=0;
int i;
for(i=0; i<=m; i++)
{y+=1.0/(i+5); }
return(y);
/********** End **********/
}
main()
{ int n;
clrscr();
printf("Enter n: ");
scanf("%d", &n);
printf("\nThe result is %1f\n", fun(n));
getch();
yzj();
}
--------------------------------------------------
功能:根据整型形参m,计算如下公式的值:y=1/2+1/4+
1/6+...+1/2m 。
例如:若m=9,则应输出:1.414484
------------------------------------------------*/
#include "stdio.h"
double fun(int m)
{ /**********Program**********/
double y=0;
int i;
for(i=1; i<=m; i++)
{y+=1.0/(2*i); }
return(y);
/********** End **********/
}
main()
{ int n;
clrscr();
printf("Enter n: ");
反比例函数练习题scanf("%d", &n);
printf("\nThe result is %1f\n", fun(n));
yzj();
getch();
}
--------------------------------------------------
功能:编写函数求表达式的和(n的值由主函数输入)。
1-1/2+1/3-1/4+......+1/m
例如:当n=20时,表达式的值为0.668771。
------------------------------------------------*/
#include "stdio.h"
float sum(int n)
{ /**********Program**********/
float s=0;
int i,k=1;
for(i=1;i<=n;i++)
{ s=s+k*1.0/i;
k=-k;
}
return(s);
/********** End **********/
}
离骚读音
main()
{ int n;
scanf("%d",&n);
printf("sum=%f\n",sum(n));
yzj();
getch();
}
--------------------------------------------------
功能:求一分数序列2/1,3/2,5/3,8/5,13/8,21/13…
的前n项之和。
说明:每一分数的分母是前两项的分母之和,每一分数的
分子是前两项的分子之和
例如:求前20项之和的值为32.660259。
------------------------------------------------*/
#include "stdio.h"
float fun(int n)
{ /**********Program**********/
int i;
float f1=1,f2=1,f3,s=0;
for(i=1;i<=n;i++)
{f3=f1+f2;
f1=f2;
f2=f3;
s=s+f2/f1;
}
return s;
/
********** End **********/
}
main()
{ float y;
y=fun(20);
printf("y=%f\n",y);
yzj();
getch();
}
-----------------------------------------------
功能:求Sn=a+aa+aaa+aaaa+a…a的值,其中a是一个数字-----------------------------------------------
#include<stdio.h>
void main( )
{int n,i,a,sum=0,t;难忘的英语
scanf("%d,%d",&a,&n);
t=a;
for(i=1;i<=n;i++)
{sum=sum+t; t=t*10+a;}
printf("sum=%d\n",sum);
}
--------------------------------------------------
功能:用函数求fibonacci数列前n项的和。
说明:fibonacci数列为数列的第一项值为1,第二项值也
为1,从第三项开始,每一项均为其前面相邻两项
的和。
例如:当n=28时,运行结果:832039
------------------------------------------------*/
#include "stdio.h"
long sum(long f1,long f2)
{ /**********Program**********/
long f,k=f1+