十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
#include "stdio.h"
网站建设公司,为您提供网站建设,网站制作,网页设计及定制网站建设服务,专注于企业网站制作,高端网页制作,对雨棚定制等多个行业拥有丰富的网站建设经验的网站建设公司。专业网站设计,网站优化推广哪家好,专业seo优化排名优化,H5建站,响应式网站。
int main(int argc,char *argv[]){
int y,m,d,sum,i,w[12]={31,28,31,30,31,30,31,31,30,31,30,31};
printf("Please enter the birth year-month-day...\n");
if(scanf("%d-%d-%d",y,m,d)!=3 || y1 || m1 || m12 || (w[1]=y%4==0 y%100 || y%400==0 ? 29 : 28,dw[m-1])){
printf("Input error, exit...\n");
return 0;
}
for(sum=w[m-1]-d,i=m;i12;sum+=w[i++]);//求第一年生日后总天数
for(i=y+1,y+=18;iy;i++)
sum+=(365+(i%4==0 i%100 || i%400==0));//求到18岁前一年总天数
w[1] = i%4==0 i%100 || i%400==0 ? 29 : 28;//18岁那一年是闰年?
for(m-=2;m=0;sum+=w[m--]);//求到18岁那一年整月天数和
printf("%d\n",sum+d);//输出
return 0;
}
代码图片和运行样例:
#include
"stdio.h"
main()
{
double
a=0,b;
int
i;
for(i=1;;i++)
{
printf("Enter
a
number:");
scanf("%lf",b);
if(ba)
a=b;
if(b=0)
break;
}
if(a=0)
printf("%lf\n",a);
}
经验证,float数据不够精确,如输入100.62,输出的却是如100.620003。所以用了更精确的double数据。希望能帮到你。
1、以下说法中正确的是____。(C)
A、C语言程序总是从第一个函数开始执行
B、在C语言程序中,要调用的函数必须在main()函数中定义
C、C语言程序总是从main()函数开始执行
D、C语言程序中的main()函数必须放在程序的开始部分
2、某文件中定义的静态全局变量(或称静态外部变量)其作用域是_____。(B)
A、只限某个函数
B、本文件
C、跨文件
D、不限制作用域
3、下列叙述中正确的是_____。(A)
A、函数定义不能嵌套,但函数调用可以嵌套
B、函数定义可以嵌套,但函数调用不可以嵌套
C、函数定义和函数调用都不能嵌套
D、函数定义与函数调用都可以嵌套
4、以下说法中正确的是_____。(A)
A、#define和printf都是C语句
B、#define是C语句,而printf不是
C、printf是C语句,但#define
D、#define和printf都不是C语句
5、以下关于函数叙述中,正确的是_____。(D)
A、在函数体中可以直接引用另一个函数中声明为static类别的局部变量的值
B、在函数体中至少必须有一个return 语句
C、在函数体中可以定义另一个函数
D、在函数体中可以调用函数自身
6、在C语言中,若对函数类型未加显式说明,则函数的隐含类型是______。(A)
A、void
B、double
C、int
D、char
7、下面不正确的描述为______。(A)
A、调用函数时,实参可以是表达式
B、调用函数时,实参与形参可以共用内存单元
C、调用函数时,将为形参分配内存单元
D、调用函数时,实参与形参的类型必须一致
8、在一个源文件中定义的全局变量的作用域为______。(D)
A、本文件的全部范围
B、本程序的全部范围
C、本函数的全部范围
D、从定义该变量开始至本文件结束
9、以下叙述中,错误的是______。(D)
A、不同函数中可以使用相同名字的变量
B、在函数外部定义的变量是全局变量
C、形式参数是局部变量
D、在main函数体内定义的变量是全局变量
10、C语言规定,调用一个函数时,当实参和形参都是普通变量时,它们之间数据传递的方式是______。(B)
A、地址传递
B、单向值传递
C、双向值传递
D、由用户定义传递方式
11、若用数组名作为函数调用的实参,则传递给形参的是______。(A)
A、数组的首地址
B、数组的第一个元素的值
C、数组中全部元素的值
D、数组元素的个数
12、C语言规定,函数返回值的类型是______。(D)
A、return语句中的表达式的类型
B、调用该函数时的主调函数的类型
C、由系统确定
D、该函数定义时的类型
13、若一个void型函数定义中没有return语句,则调用该函数时,函数______。(A)
A、没有返回值
B、返回若干个系统默认值
C、返回一个用户所希望的函数值
D、返回一个不确定的值
14、以下有关C语言的叙述中,错误的是______。(A)
A、函数调用可以作为独立的语句出现
B、函数调用可以出现在表达式中
C、函数调用可以作为函数的实参
D、函数调用可以作为函数的形参
15、以下程序输出结果是__________。(B)
#include stdio.h
int i=10;
main()
{int j=1;
j=fun();
printf("%d,",j);
j=fun();
printf("%d",j);
}
fun()
{int k=0;
k=k+i;
i=i+10;
return (k);
}
A、0,0
B、10,20
C、10,10
D、20,20
一.
1.B 2.D 3.A 4.B 5.D
二.
1.BC 2.ABC 3.AB 4.CD 5.AB
三.
1.错误 2.正确 3.错误 4.正确 5.错误
一、选择题
1、C语言规定,在一个源程序中,main()函数的位置(C )。
A) 必须在最开始 B)必须在最后
C) 可以任意 D) 必须在系统调用的库函数后面
这题你死记就行,你看看这个
任何一个C++程序都必须定义一个main函数,它的返回类型总是int类型。这个函数由操作系统来调用,在main函
数执行完以后,程序也就终止了。 main也可以使用return向操作系统返回一个值,使用操作系统的命令可以检测
main的返回值。一般约定在main返回0时,表示程序运行过程中没有出现错误,其它非零值表示程序出现异常情况。
若没有为main指定返回值,这样返回值是任意的。
2、若x和y都是int 型变量,x=100,y=200,且有以下程序段,printf(“%d”,(x,y));则其输出结果是( A)。
A) 200 B) 100 C) 100 200 D) 输出不确定值
(x,y)这是个逗号表达式,表达式的值为最后一个逗号后面表达式的值,因为前面有一个%d,所以输出 的是y的
值
3、合法的C语法字符常量是(C )。
A) “A” B) 65 C) ‘\t’ D) A
字符都是由两个单引号括起来的,死记, a)为字符串
4、表达式“3!=4”的值是(A )。
A) 1 B) 0 C) T D) F
!=是c语言的逻辑运算符,3!=4为真,多以得1, 3=4为假,值为0
5、 int a=1,b=2,c=3,d=4,执行下列程序后x的值为( C)。
if(ab) x=1;else if (cd) x=2;else x=3;
A) 1 B) 2 C) 3 D) 4
如果ab,12为假,不执行x=1,执行else if(cd),判断:34为假,不执行x=2,执行=3,完
6、以下程序的输出结果是(D)。
Int x=10,y=3,z;printf(“%d\n”,z=(x%y,x/y));
A)1 B) 0 C) 4 D) 3
逗号表达式,x%y,10%3,商3余1,模取余数1,x/y,10/3,商3余1,除法取商3,逗号表达式,表达式的值为最后一
个逗号后面表达式的值
7、为表示x≥y≥z,应使用C语言表达式(A )。
A) (x=y)(y=z) B) (x=y) AND (y=z)
C) (x=y=z) D) (x=y) (y=z)
关系运算符,x=y与y=z必须是同时成立的,因此要用逻辑运算符,与的意思
8、合法的数组定义是( a )。
A) int a[ ]=”string”; B) int a[5]={0,1,2,3,4,5};
C) char a=”string”; D) char a[ ]={“01234”};
a不指定数组长度定义,正确
b数组长度为5,就是里面有5个数组元素,多了一个数组元素
c定义a不是数组而是一个变量,素组应该是a[]
d是错的,字符串是这样定义的:char a[ ]={'0','1','2','3','4','\0'};
[4]中数字是数组长度,说明里面有几个元素
9、设x和y均为int型变量,则语句“x+=y;y=x-y;x-=y;”的功能是(D)。
A) 把x和y按从小到大排列 B)把x和y按从大到小排列
C)无确定结果 D)交换x和y中的值
x+=y等同于x=x+y,把x加y的值赋给x,x现在存的是x与y的和
y=x-y把x减y的值赋给y,x现在存的是x与y的和 (x+y)-y=x,把x的值给y,y存x的值
x-=y等同于x=x-y,把x减y的值赋给x,(x+y)-y=x,现在的后面的y存的是x的值,做完后x里存的值是y,完成交换
10、若已定义x和y为double类型,则表达式“x=1,y=x+3/2”的值是(C)。
A) 1 B)2 C) 2.0 D) 1.0
逗号表达式,先让x=1在算y=x+3/2,得2,因为是double类型,所以有小数点
11、下列条件语句中,功能与其他语句不同的是 (D)
A) if(a) printf("%d\n",x); else printf("%d\n",y);
B) if(a==0) printf("%d\n",y); else printf("%d\n",x);
C) if (a!=0) printf("%d\n",x); else printf("%d\n",y);
D) if(a==0) printf("%d\n",x); else printf("%d\n",y);
a 如果a为真输出x,如果a为假输出y
b 如果a==0,也就是为假,输出y,a为真输出x,同a
c 如果a!=0为真,输出x,a为假输出y同上
d 如果a为假输出x,如果a为真输出y,与以上的都不同
12、以下能正确定义二维数组的是 (C)
A) int a[][3]; B) int a[][3]=2{2*3};
C) int a[][3]={0}; D) int a[2][3]={{1},{2},{3,4}};
a 没有给数组赋初值
b {}里不能有*
c 正确,记住第一个[]中可以为空,第二个[]不能为空,死记
d a[2][3] 的意思是有两个一维数组,每个一维数组里有3个元素,{{1},{2},{3,4}}; 她的意思是三个数组,{}中的每一个{}代表一个数组,里边的数为数组元素
13、用C语言编写的代码程序 (B)
A)可立即执行 B)是一个源程序
C)经过编译即可执行 D)经过编译解释才能执行
死记
下面是我的答案,楼上的50和51题做错了
四则运算表达式里面有double其他都会转化为double,所以50题选A
x = 1, y = x + 3 / 2, 首先要明白逗号表达式的值去最后一个表达式的值,
而最后一个表达式是赋值表达式,它的值是y的值
而由运算符优先级,它将先运算 3 / 2,都是整数,当然结果是1, 然后加上x,
答案是2
另外46题之所以是C是因为 || 运算符的短路问题,即左边确定是正确的之后就不会
执行右边了
相信我的C能力吧,都用了好几年了。。
41.字符串"ABC"在内存占用的字节数是 D (三个字符加最后的一个'\0')
(A) 8
(B) 6
(C) 3
(D) 4
42.在PC中,'\n'在内存占用的字节数是 D (转义字符同样是一个字节)
(A) 3
(B) 4
(C) 2
(D) 1
43.在下列数据中属于“字符串常量”的是 A (这个应该懂吧,B是字符常量,C是错的,D是变量)
(A) "ABC"
(B) 'a'
(C) 'abc'
(D) ABC
44.表达式10 != 9的值是 D (逻辑表达式的结果只有0和1)
(A) 0
(B) 真
(C) true
(D) 1
45.设a为5,执行下列语句后,b的值不为2的是 A
(A) b = a % 2
(B) b = a 3 ? 2 : 4
(C) b = 6 - (--a)
(D) b = a / 2
46.设m, n, a, b, c, d均为0,执行(m = n == b) || (n = c == d)后,m,n的值是 C
(A) 0,1
(B) 1,1
(C) 1,0
(D) 0,1
47.char型常量在内存中存放的是 C
(A) 十进制代码值
(B) BCD码值
(C) ASCII值
(D) 内码值
48.下列叙述中正确的是 B
(A) C语言中的所有字母都不区分大小写
(B) C语言中的所有关键字必须小写
(C) C程序中的关键字必须小写,其他标识符不区分大小写
(D) C程序中的搜有字母都必须小写
49.在以下一组运算符中,优先级最高的运算符是 A
(A) %
(B) =
(C) =
(D)
50.若有char a; int b; float c; double d;,则表达式a * b + d - c的值的类型是 A
(A) double (B) char
(C) float (D) int
51. 若已定义x和y为double类型,则表达式x = 1, y = x + 3 / 2的值是 A
(A) 2.0
(B) 2
(C) 1
(D) 2.5
52.下列只有当整数x为奇数时,才是逻辑“真”的表达式是 D
(A) (x - x / 2 * 2) == 0
(B) !(x % 2 )
(C) x % 2 == 0
(D) !(x % 2 == 0)
53. 下列能正确表示a≥10或a≤0的C语言关系表达式是 A
(A) a = 10 || a = 0
(B) a = 10 a = 0
(C) a = 10 | a = 0
(D) a = 10 or a = 0
54.以下叙述不正确的是 D
(A) C程序的注释可以写在语句的后面
(B) 分号是C语句的必要组成部分
(C) 函数是C程序的基本单位
(D) 主函数的名字是mian
55. 下面不属于C语言关键字的是 C
(A) enum
(B) typedef
(C) integer
(D) union