一. 单选题(共100 题)
1. (单选题)
C语言的源程序通常的扩展名是( )
- A. .cpp
- B. .c
- C. .obj
- D. .exe
正确答案: B
2. (单选题)
以下合法的数组定义是( )。
- A. int a[]="Language";
- B. char a[]="C Program Language.";
- C. char a="C Program";
- D. int a[5]={0,1,2,3,4,5};
正确答案: B
3. (单选题)
以下关于预处理命令的描述正确的是( )。
- A. 预处理指令也是C语句。
- B. 一个包含文件中不可以再包含其他的文件。
- C. 在C源程序中,凡是行首以#标识的控制行都是预处理命令
- D. 预处理是指完成宏替换和文件包含中指定的文件的调用。
正确答案: C
4. (单选题)
以下程序运行时从键盘输入3.6,2.4,输出结果是( )。
#include<math.h>
void main()
{
float x,y,z;
scanf("%f,%f",&x,&y);
z=x/y;
while(1)
{ if(fabs(z)>1.0)
{
x=y;
y=x;
z=x/y;
}
else break;
}
printf("%f",y);
}
- A. 2.4
- B. 1.5
- C. 1.6
- D. 2
正确答案: A
5. (单选题)
下列浮点数的形式表示错误的是( )
- A. 10.6
- B. 12E2.0
- C. 100000
- D. .5
正确答案: B
6. (单选题)
以下程序的输出结果是( )。
#include<stdio.h>
void main()
{
unsigned int a,b;
a=4|3;
b=4&3;
printf("%d,%d",a,b);
}
- A. 1,1
- B. 43,0
- C. 0,7
- D. 7,0
正确答案: D
7. (单选题)
表达式19&23的值是( )。
- A. 0xf8
- B. 0x13
- C. 0x17
- D. 0xec
正确答案: D
8. (单选题)
以下程序的输出结果是( )。
#include<stdio.h>
int func(int a,int b)
{
return(a+b);
}
void main()
{
int x=6,y=7,z=8,r;
r=func(func(x,y),z--);
printf("%d\n",r);
}
- A. 20
- B. 31
- C. 15
- D. 21
正确答案: D
9. (单选题)
若有以下定义和语句:
union data
{
int i;
char c;
float f;
}a;
int n;
则以下语句正确的是( )。
- A. a=5;
- B. printf("%d\n ",a.i);
- C. a={2, 'a',1.2};
- D. n=a;
正确答案: B
10. (单选题)
一个C程序的执行是从( )
- A. main函数开始,直到最后一个函数结束
- B. 第一个函数开始,直到最后一个函数结束
- C. main函数开始,直到main函数结束
- D. 第一条语句开始,直到最后一条语句结
正确答案: C
11. (单选题)
以下数据类型中不是构造类型的是( )。
- A. 共用型
- B. 结构型
- C. 数组型
- D. 指针型
正确答案: D
12. (单选题)
表达式0x13|0x17的值是( )。
- A. 0xC8
- B. 0xE8
- C. 0x13
- D. 0x17
正确答案: D
13. (单选题)
经过下述赋值后,变量x的数据类型是( )。
float x=21.0;
int y;
y=(int)x;
- A. float
- B. double
- C. int
- D. char
正确答案: A
14. (单选题)
以下选项中不合法的实型常量是( )
- A. -62000
- B. 0.123
- C. 5
- D. E3
正确答案: D
15. (单选题)有如下枚举类型定义:
enum language { English=6, French,Chinese=1,Japanse,Italian};
则枚举量Italian的值为( )。
- A. 10
- B. 3
- C. 4
- D. 5
正确答案: B
16. (单选题)
能正确定义整型变量a和b,并为它们赋初值5的语句是( )
- A. a=b=5;
- B. int a=5,b=5;
- C. int a=b=5;
- D. int a,b=5;
正确答案: B
17. (单选题)
以下程序的输出结果为( )。
#include <math.h>
#define POWER(x,y) pow(x,y)
#define TWO 2
#define ADD(y) y++
void main()
{
int a=3;
printf("%f\n",POWER(ADD(a),TWO-1));
}
- A. 4.000000
- B. 3.000000
- C. 9.000000
- D. 6.000000
正确答案: B
18. (单选题)
设有以下宏定义:
#define N 4
#define Y(n) ((N+1)+1)
则执行语句:z=2*(N+Y(5+1)); 后,z的值为( )。
- A. 54
- B. 出错
- C. 60
- D. 48
正确答案: C
19. (单选题)
两个指针p和q,分别指向单链表的两个结点,p是q的前驱结点的条件是( )。
- A. p->next==q->next
- B. p->next==q
- C. q->next==p
- D. p==q
正确答案: B
20. (单选题)
假设a、b均为字符数组,则以下正确的输入语句是( )。
- A. gets("a");gets("b");
- B. gets(a,b);
- C. scanf("%s %s",&a,&b);
- D. scanf("%s %s",a,b);
正确答案: D
21. (单选题)
只有当形参和与其对用的实参同名时才共享存储单元
- A. 调用该函数时的实参的数据类型
- B. 任意指定的数据类型
- C. 函数返回值的数据类型
- D. 函数形参的数据类型
正确答案: C
22. (单选题)
下列描述正确的是( )。
- A. 两个字符串所包含的字符个数相同时,才能比较字符串
- B. 字符个数多的字符串比字符个数少的字符串大
- C. 字符串"That"小于字符串"The"
- D. 字符串 "STOP " 与 "STOP" 相等
正确答案: C
23. (单选题)
若采用链式存储结构存储线性逻辑关系的数据元素时,要求内存中存储单元的地址( )。
- A. 连续或不连续都可以
- B. 一定是不连续的
- C. 部分地址必须是连续的
- D. 必须是连续的
正确答案: A
24. (单选题)
ypedef int integer;的作用是( )。
- A. 定义了一个长整型变量
- B. 定义了一个整型变量
- C. 建立了一种新的数据类型
- D. 说明了一个新的数据类型说明符
正确答案: D
25. (单选题)
如果c是大于1的正整数,与以下程序段功能相等的赋值语句是( )。
s=a;
for(b=1;b<=c;b++)
s=s+1;
- A. s=b+c;
- B. s=s+c;
- C. s=a+b;
- D. s=a+c;
正确答案: D
26. (单选题)
下列叙述不正确的是( )。
- A. 使用#include <文件名>的形式比使用#include "文件名"形式节省编译时间。
- B. #include <…>格式中的文件名之前可以包括路径。
- C. #include "C:\\user\\file.h"是正确的包含命令,它表示文件file.h存放在C盘的user目录下。
- D. #include命令可以包含一个含有函数定义的C语言源程序文件。
正确答案: C
27. (单选题)
下列程序段运行后的结果是( )。
#include<stdio.h>
int main()
{
int a = 2, b = -1, c = 2;
if(a < b)
if(b < 0)
c = 0;
else c++;
printf("%d\n",c);
return 0;
}
- A. 0
- B. 2
- C. 3
- D. 4
正确答案: B
28. (单选题)
以下程序的输出结果是( )。
#include<stdio.h>
double f(int n)
{
int i;
double s=0;
for(i=1;i<=n;i++)
s+=1/i;
return s;
}
void main()
{
int i,m=3;
float a=0.0;
for(i=0;i<=m;i++)
a=a+f(i);
printf("%f\n",a);
}
- A. 3.000000
- B. 5.5000000
- C. 4.000000
- D. 8.25
正确答案: A
29. (单选题)
以下程序的输出结果是( )。
#include<stdio.h>
void main()
{
int x=1,y=0,a=0,b=0;
switch(x)
{
case 1:switch(y)
{
case 0:a++;break;
case 1:b++;break;
}
case 2:a++;b++;break;
}
printf("a=%d,b=%d",a,b);
}
- A. a=1,b=1
- B. a=1,b=2
- C. a=2,b=1
- D. a=2,b=2
正确答案: C
30. (单选题)希望当num的值为奇数时,表达式的值为“真”;
num的值为偶数时,表达式的值为“假”。
则以下不能满足该要求的表达式是( )。
- A. num%2==1
- B. !(num%2)
- C. !(num%2==0)
- D. num%2
正确答案: B
31. (单选题)
在双向链表中,在p所指向的结点前插入一个q所指向的结点,相应的操作语句是( )。
注:双向链表的结点结构为(prior,data,next)。
- A. q->prior=p->prior;q->next=q;p->prior=q;p->prior=q;
- B. p->prior=q;p->prior->next=q;q->next=p;q->prior=p->prior;
- C. q->next=p;q->prior=p->prior;p->prior->next=q;p->prior=q;
- D. p->prior=q;q->next=p;p->prior->next=q;q->prior=q;
正确答案: C
32. (单选题)
结构化程序设计由3种基本结构组成,3种基本结构组成的算法( )。
- A. 可以完成任何复杂的任务
- B. 只能完成部分复杂的任务
- C. 能完成符合结构化的任务
- D. 只能完成一些简单的任务
正确答案: A
33. (单选题)
C程序是由( )构成的
- A. 若干过程
- B. 一个或多个函数
- C. 若干子程序
- D. 一个主程序与若干子程序
正确答案: B
34. (单选题)
以下程序正确的说法是( )。
#include<stdio.h>
void main()
{
int x=0,y=0;
if(x=y) printf("*****\n");
else printf("#####\n");
}
- A. 输出#####
- B. 有语法错误不能通过编译
- C. 可以通过编译,但不能通过连接,因此不能运行
- D. 输出*****
正确答案: A
35. (单选题)输入“12345,xyz<回车>”,下列程序的输出结果是( )。
#include<stdio.h>
void main()
{
int a;
char c;
scanf("%3d%3c",&a,&c);
printf("%d,%c",a,c);
}
- A. 12,4
- B. 12,34
- C. 123,4
- D. 1234
正确答案: C
36. (单选题)
使用fseek()函数可以实现的操作是( )。
- A. 改变文件位置指针的当前位置
- B. 文件的顺序读写
- C. 文件的随机读写
- D. 以上都不是
正确答案: A
37. (单选题)
若定义以下变量和数组:
int i;
int a[3][3]={1,2,3,4,5,6,7,8,9};
则下列语句的输出结果是( )。
for(i=0;i<3;i++)
printf("%d ",a[i][2-i]);
- A. 3 5 7
- B. 1 5 9
- C. 3 6 9
- D. 1 4 7
正确答案: A
38. (单选题)
下列叙述中,不正确的是( )
- A. 分号是C语句的必要组成部分
- B. C语句的注释可以写在语句的后面
- C. 主函数的名字不一定用main表示
- D. 函数是C程序的基本单位
正确答案: C
39. (单选题)
C语言中,while语句和do-while语句的主要区别是( )
- A. do-while的循环体不能是复合语句
- B. do-while的循环体至少无条件执行一次
- C. while的循环控制条件比do-while的循环控制条件严格
- D. do-while允许从外部转到循环体内
正确答案: B
40. (单选题)
若 x 为 float 型变量,则以下语句( )。x=213.82631; printf("%-4.2f\n",x);
- A. 输出为213.83
- B. 输出格式描述符的域宽不够,不能输出
- C. 输出为213.82
- D. 输出为-213.82
正确答案: A
41. (单选题)
构成C语言源程序的基本单位是( )
- A. 过程
- B. 函数
- C. 子程序
- D. 命令
正确答案: B
42. (单选题)语句 if(x!=0) y=1;
else y=2;
与( )等价。
- A. if(x) y=1;
else y=2;
- B. if(x) y=2;
else y=1;
- C. if(!x) y=1;
else y=2;
- D. if(x=0) y=2;
else y=1;
正确答案: A
43. (单选题)已知int a[3][2]={3,2,1};则表达式“a[0][0]/a[0][1]/a[1][0]”的值是( )。
- A. 0.16667
- B. 错误的表达式
- C. 1
- D. 0
正确答案: C
44. (单选题)
下列程序的输出结果是( )。
#include<stdio.h>
void f(int x,int y,int z)
{
z=x+y;
}
void main()
{
int a;
f(5,6,a);
printf("%d\n",a);
}
- A. 12
- B. 11
- C. 1
- D. 不确定的值
正确答案: D
45. (单选题)
以下叙述不正确的是( )
- A. 注释说明被计算机编译系统忽略
- B. 注释说明必须跟在“//”之后不能换行或者括在“/*”和“*/”之间且注释符必须配对使用
- C. 注释符“/”和“*”之间不能有空格
- D. 在C程序中,注释说明只能位于一条语句的后面
正确答案: D
46. (单选题)
有一条长阶梯,若每步跨2阶,则最后剩余1阶,若每步跨3阶,则最后剩余2阶,若每步跨5阶,则最后剩余4阶,若每步跨6阶,则最后剩余5阶,若每步跨7阶,最后才正好一阶不剩。请问,这条阶梯共有多少阶。
请补充while语句后的判断条件。
#include<stdio.h>
void main()
{
int i=1;
while( )
++i;
printf("阶梯共有%d阶.\n",i);
}
- A. !((i%2==1)&&(i%3==2)&&(i%5==4)&&(i%6==5)&&(i%7==1))
- B. !((i%2==0)&&(i%3==2)&&(i%5==4)&&(i%6==5)&&(i%7==0))
- C. !((i%2==1)&&(i%3==2)&&(i%5==4)&&(i%6==5)&&(i%7==0))
- D. (i%2==1)&&(i%3==2)&&(i%5==4)&&(i%6==5)&&(i%7==0)
正确答案: C
47. (单选题)在宏定义#define PI 3.1415926中,用宏名PI代替一个( )。
- A. 字符串
- B. 单精度数
- C. 双精度数常量
- D. 常量
正确答案: A
48. (单选题)静态链表中的游标表示的是( )。
- A. 逻辑上下一个结点在数组中的下标
- B. 内存地址
- C. 数组下标
- D. 逻辑上下一个结点的实际地址
正确答案: A
49. (单选题)
头指针为H的循环单链表中尾结点r的特点是( )。
- A. r=H->next;
- B. r=H;
- C. r->next=H;
- D. r->next= H->next;
正确答案: C
50. (单选题)
以下程序执行后的输出结果是( )。
#include<stdio.h>
void main()
{
int i,j,s=0;
int a[4][4]={1,2,3,4,0,2,4,6,3,6,9,12,3,2,1,0};
for(j=0;j<4;j++)
{
i=j;
if(i>2) i=3-j;
s+=a[i][j];
}
printf("%d\n",s);
}
- A. 18
- B. 16
- C. 12
- D. 11
正确答案: B
51. (单选题)
分析以下程序的运行结果。
#include <stdio.h>
void main()
{
int k=2;
switch(k)
{
case 1:printf("%d\n",k++); break;
case 2:printf("%d ",k++);
case 3:printf("%d\n",k++); break;
case 4:printf("%d\n",k++);
default:printf("Full!\n");
}
}
- A. 3 4
- B. 3 3
- C. 2 3
- D. 2 2
正确答案: C
52. (单选题)
以下叙述正确的是( )。
- A. 全局变量的作用域一定比局部变量的作用域范围大
- B. 静态类型变量的生存期贯穿于整个程序的运行期间
- C. 函数的形参都属于全局变量
- D. 未在定义语句中赋值的auto变量和static变量的初值都是随机值
正确答案: B
53. (单选题)
使用“scanf("a=%d,b=%d",&a,&b)”,要使a,b的值均为25,正确的输入是( )。
- A. a=25 b=25(空格分开)
- B. 25 25(空格分开)
- C. 25,25
- D. a=25,b=25
正确答案: D
54. (单选题)
有如下程序:有如下程序:
#include<stdio.h>
void main()
{
char a,b,c,d;
scanf("%c,%c,%d,%d",&a,&b,&c,&d);
printf("%c, %c, %c, %c ",a,b,c,d);
}
若运行时从键盘输入:6,5,65,66<回车>,则输出结果是( )。
- A. 6,5,A,B
- B. 6,5,65,66
- C. 6,5,6,5
- D. 6,5,6,6
正确答案: A
55. (单选题)
在说明一个共用体变量时,系统分配给它的存储空间是( )。
- A. 该共用体中所有成员变量所需存储空间的总和
- B. 该共用体中最后一个成员变量所需存储空间
- C. 该共用体中占用最大存储空间的成员变量所需存储空间
- D. 该共用体中第一个成员变量所需存储空间
正确答案: C
56. (单选题)
以下程序的执行结果是( )。
#include<stdio.h>
long ff(int n)
{
if (n>3)
return (ff(n-1)+ff(n-2));
else return(3);
}
void main()
{
printf("%d\n",ff(4));
}
- A. 6
- B. 5
- C. 7
- D. 8
正确答案: A
57. (单选题)
以下关于for语句的说法不正确的是( )
- A. for循环是先判断表达式,后执行循环体语句
- B. for循环只能用于循环次数已经确定的情况
- C. for循环中,可以用break语句跳出循环体
- D. for循环体语句中,可以包含多条语句,但要用花括号括起来。
正确答案: B
58. (单选题)
一个单链表中,在指针p所指向的结点之后插入指针s所指向的结点,正确的操作是( )。
- A. p->next=s->next;p->next=s;
- B. p->next=s;p->next=s->next;
- C. p->next=s;s->next=p->next;
- D. s->next=p->next;p->next=s;
正确答案: D
59. (单选题)
下列程序段运行后x的值是( )。
int a = 0, b = 0, c = 0, x = 35;
if (!a) x--;
else if (b);
if (c) x = 3;
else x = 4;
- A. 34
- B. 35
- C. 4
- D. 3
正确答案: C
60. (单选题)
以下能对二维数组a进行正确初始化的是( )。
- A. int a[][3]={{1,2,3},{4,5,6}};
- B. int a[2][4]={1,2,3},{{4,5},{6}};
- C. int a[2][]={{1,0,1},{5,2,3}};
- D. int a[][3]={{1,0,1},{},{1,1}};
正确答案: A
61. (单选题)
在C语言中,一维数组的定义方式为:类型说明符 数组名( )。
- A. [常量表达式]
- B. [整型表达式]
- C. [整型常量]或[整型常量表达式]
- D. [整型常量]
正确答案: C
62. (单选题)
已知int x=5,y=5,z=5;则执行语句x%=y+z;后,x的值是(
- A. 6
- B. 1
- C. 0
- D. 5
正确答案: D
63. (单选题)
以下关于typedef的叙述不正确的是( )。
- A. 用typedef可以说明各种类型名,但不能用来定义变量
- B. 用typedef可以增加新类型
- C. 用typedef只是将已存在的类型用一个新的名称来代表
- D. 用typedef便于程序的通用和移植
正确答案: B
64. (单选题)
若定义int i; 则以下for语句的执行结果是( )。
for(i=1;i<10;i++)
{
if(i%3) i++;
++i;
printf("%d",i);
}
- A. 35811
- B. 369
- C. 258
- D. 2468
正确答案: B
65. (单选题)下列合法的转义字符是( )
- A. '\"'
- B. '\ee'
- C. '\018
- D. 'xab'
正确答案: A
66. (单选题)
以下程序段的输出结果是( )。
#include<stdio.h>
void main()
{
int a=3;
do
{
printf("%d",a--);
}while(!a);
}
- A. 32
- B. 不输出任何内容
- C. 3
- D. 321
正确答案: C
67. (单选题)
若定义int i;则以下循环语句的循环执行次数是( )。
for(i=2;i==0;)
printf("%d",i--);
- A. 1
- B. 2
- C. 0
- D. 无限次
正确答案: C
68. (单选题)下面程序段的运行结果是 。
x=y=0;
while(x<15)
y++,x+=++y;
printf("%d,%d",y,x);
- A. 20,7
- B. 6,12
- C. 20,8
- D. 8,20
正确答案: D
69. (单选题)
在C语言中引用数组元素时,其数组下标的数据类型允许是( )。
- A. 整型常量
- B. 整型常量或整型表达式
- C. 整型表达式
- D. 任何类型的表达式
正确答案: B
70. (单选题)
若已定义x和y为double型变量,则表达式x=1,y=x+3/2的值是( )
- A. 2
- B. 2.5
- C. 2.0
- D. 1
正确答案: C
71. (单选题)
以下程序的运行结果是( )。
#define S(x) 4*x*x+1
void main()
{
int i=6,j=8;
printf("%d",S(i+j));
}
- A. 81
- B. 785
- C. 73
- D. 没有正确答案
正确答案: A
72. (单选题)
下列属于C语言中合法标识符的是( )
- A. ex-1
- B. _cook
- C. 951a
- D. if
正确答案: B
73. (单选题)
在C程序中,main函数的位置( )
- A. 可以任意
- B. 必须作为最后一个函数
- C. 必须作为第一个函数
- D. 必须放在它所调用的函数之后
正确答案: A
74. (单选题)
以下程序的输出结果是( )。
#include<stdio.h>
#include<string.h>
void main()
{
char str[10]="Ch\nina";
printf("%d",strlen(str));
}
- A. 6
- B. 5
- C. 7
- D. 10
正确答案: A
75. (单选题)
以下说法正确的是( )
- A. 用do-while语句构成的循环,在while后的表达式为0时结束循环
- B. do-while语句构成的循环不能用其他语句构成的循环来代替
- C. do-while语句构成的循环只能用break语句退出
- D. 用do-while语句构成的循环,在while后的表达式为非0时结束循环
正确答案: A
76. (单选题)
以下程序的输出结果为( )。
#include<stdio.h>
void main()
{
int a=30;
printf("%d",(a/3>0)?a/10:a%3);
}
- A. 0
- B. 1
- C. 10
- D. 3
正确答案: D
77. (单选题)
C语言属于( )
- A. 机器语言
- B. 汇编语言
- C. 高级语言
- D. 低级语言
正确答案: C
78. (单选题)
下面四组选项中,均是C语言关键字的选项是( )
- A. auto enum include
- B. switch typedef continue
- C. signed union scanf
- D. if struct type
正确答案: B
79. (单选题)
以下说法不正确的是( )。
- A. 在不同的函数中可以有相同名字的变量
- B. 在一个函数内的复合语句中定义的变量在本函数内有效
- C. 在一个函数内定义的变量只能在本函数内有效
- D. 函数的形式参数是局部变量
正确答案: B
80. (单选题)
以下程序的执行结果是( )。
#include<stdio.h>
int k=1;
void fun(int m)
{
m+=k;
k+=m;
{
char k='B';
printf("%d,",k-'A');
}
printf("%d,%d",m,k);
}
void main()
{
int i=4;
fun(i);
printf("%d,%d",i,k);
}
- A. 2,5,64,6
- B. 1,5,64,6
- C. 1,6,64,6
- D. 1,5,63,6
正确答案: B
81. (单选题)
对于一个头指针为head的带头结点的单链表,判定该表为空表的条件是( )。
- A. head==NULL
- B. head→next==NULL
- C. head→next==head
- D. head!=NULL
正确答案: B
82. (单选题)
以下程序运行时,输入的x值在( )范围时才会有输出结果。
#include<stdio.h>
void main()
{
int x;
scanf("%d",&x);
if(x<5);
else if(x!=20)
printf("%d",x);
}
- A. 大于等于5且不等于20的整数
- B. 不等于20的整数
- C. 小于5的整数
- D. 大于等于5且等于20的整数
正确答案: A
83. (单选题)
表达式(k=3*2,k+4),k*3的值是( )
- A. 18
- B. 14
- C. 30
- D. 10
正确答案: A
84. (单选题)
在单链表中,增加头结点的目的是( )。
- A. 链表判空、插入第一个结点以及删除第一个结点等运算方便
- B. 使单链表至少有一个结点
- C. 标志表中首结点的位置
- D. 说明该单链表是线性表的链式存储结构
正确答案: A
85. (单选题)已知函数的调用形式:fread(buffer,size,count,fp);其中的buffer代表的是( )。
- A. 一个存储区,存放要读入的数据项。
- B. 一个指针,指向要存放读入数据的地址
- C. 一个整型变量,代表要读入的数据项总和。
- D. 一个文件指针,指向要读入的文件
正确答案: B
86. (单选题)以下程序段的输出结果是( )。
int n=10;
while(n>7)
{
printf("%d,",n);
n--;
}
- A. 9,8,7,
- B. 9,8,7,6,
- C. 10,9,8,
- D. 10,9,8,7,
正确答案: C
87. (单选题)
下列不合法的字符常量是( )
- A. '2'
- B.
'ab'
- C. '\n'
- D. '\101'
正确答案: B
88. (单选题)
若a为实型变量,则以下程序段的输出结果是( )。
a=2.389;
printf("%.2f",a);
- A. 2.389
- B. 0.38
- C. 2.4
- D. 2.39
正确答案: D
89. (单选题)
putchar( )函数可以向终端输出一个( )。
- A. 字符串
- B. 字符或字符型变量值
- C. 实型变量值
- D. 浮点型变量值
正确答案: B
90. (单选题)
下列条件语句中,功能与其他语句不同的是( )。
- A. if(a==0) printf("%d\n",x);
else printf("%d\n",y);
- B. if(a) printf("%d\n",x);
else printf("%d\n",y);
- C. if(a==0) printf("%d\n",y);
else printf("%d\n",x);
- D. if(a!=0) printf("%d\n",x);
else printf("%d\n",y);
正确答案: A
91. (单选题)
以下程序的输出结果是( )。
#include<stdio.h>
int f(int a)
{
int b=0;
static int c=3;
a=c++,b++;
return a;
}
void main()
{
int a,i,t;
a=3;
for(i=0;i<3;i++)
t=f(a++);
printf("%d\n",t);
}
- A. 3
- B. 5
- C. 4
- D. 6
正确答案: B
92. (单选题)
以为了避免嵌套的条件分支语句if-else二义性,C语言规定,C程序中的else总是与( )组成配对关系。
- A. 缩排位置相同的if
- B. 在其之前未配对的最近的if
- C. 在其之前未配对的if
- D. 同一行上的if
正确答案: B
93. (单选题)
以下可以实现“输入一个字符到变量ch”的语句是( )。
- A. scanf("%c",ch);
- B. ch=getchar( );
- C. getchar(ch);
正确答案: B
94. (单选题)
若变量x,y均定义为int型,z定义为double型,下列不合法的scanf语句是( )
- A. scanf("%d%d%lf",&x,&y,&z);
- B. scanf("%d,%x,%lf",&x,&y,&z);
- C. scanf("%x,%o,%6.2f",&x,&y,&z);
- D. scanf("%x,%o",&x,&y);
正确答案: C
95. (单选题)
以下程序的输出结果是( )。
#include<stdio.h>
void main()
{
int i=5;
for(;i<15;)
{
i++;
if(i%4==0) printf("%2d",i);
else continue;
}
}
- A. 812
- B. 81216
- C. 1216
- D. 8
正确答案: A
96. (单选题)
链表不具有的特点是( )。
- A. 插入、删除不需要移动元素
- B. 可随机访问任意元素
- C. 所需空间与链表长度成正比
- D. 不必事先估计存储空间
正确答案: B
97. (单选题)
设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用( )最节省时间。
- A. 带尾指针的单循环链表
- B. 单循环链表
- C. 带头结点的双循环链表
- D. 单链表
正确答案: C
98. (单选题)
执行语句“x=(a=5,b=a--)”后,x,a,b的值分别是( )
- A. 5,4,4
- B. 5,5,4
- C. 5,4,5
- D. 4,5,4
正确答案: C
99. (单选题)
以下说法正确的是( )。
- A. 实参和与其对应的形参各占用独立的存储单元
- B. 实参和与其对应的形参共享一个存储单元
- C. 形参是虚拟的,不占用存储单元
- D. 只有当形参和与其对用的实参同名时才共享存储单元
正确答案: A
100. (单选题) 下列属于C语言关键字的是( )
- A. typedef
- B. ENUM
- C. Int
- D. unien
正确答案: A
二. 判断题(共44 题)
1. (判断题)
格式化输入函数scanf的返回值是输入数据的个数。
- A. 对
- B. 错
正确答案: 对
2. (判断题)
“#define”和“printf”都不是C语句。
- A. 对
- B. 错
正确答案: 对
3. (判断题)凡在函数中未指定存储类别的变量,其隐含的存储类别是void类型。
- A. 对
- B. 错
正确答案: 错
4. (判断题)
if(a=5) 是允许的。
- A. 对
- B. 错
正确答案: 对
5. (判断题)
while、If、double均是C语言的关键字。
- A. 对
- B. 错
正确答案: 错
6. (判断题)
以下程序的输出结果是n=4
#include<stdio.h>
void main()
{
int i,n=0;
for(i=2;i<5;i++)
{
do {
if(i%3) continue;
n++;
} while(!i);
n++;
} printf("n=%d",n);
}
- A. 对
- B. 错
正确答案: 对
7. (判断题)
在C语言中,每个语句必须以分号结束。
- A. 对
- B. 错
正确答案: 对
8. (判断题)
宏替换不占用运行时间。
- A. 对
- B. 错
正确答案: 对
9. (判断题)
-6.2e4是不合法的实型常量。
- A. 对
- B. 错
正确答案: 错
10. (判断题)
程序调试是指对程序进行编译。
- A. 对
- B. 错
正确答案: 错
11. (判断题)
对 C 的源程序进行编译是指将C源程序翻译成目标程序。
- A. 对
- B. 错
正确答案: 对
12. (判断题)以下程序中for循环的执行次数是6次。
#define M 2
#define N M+1
#define NUM (N+1)*N/2
void main()
{
int i;
for(i=1;i<=NUM;i++)
printf("%d\n",i);
}
- A. 对
- B. 错
正确答案: 对
13. (判断题)
当接受用户输入的含空格的字符串时,应使用getc函数。
- A. 对
- B. 错
正确答案: 错
14. (判断题)
在if语句的三种形式中,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用{}括起来组成一个复合语句。
- A. 对
- B. 错
正确答案: 对
15. (判断题)
中的每个结点只能是一个简单类型,而链表的每个结点可以是一个复杂类型。
- A. 对
- B. 错
正确答案: 错
16. (判断题)
若x为int类型,则表达式x=1,x+5,x++的值是1。
- A. 对
- B. 错
正确答案: 对
17. (判断题)
为提高程序的运行速度,在函数中对于自动变量和形参可用register型的变量。
- A. 对
- B. 错
正确答案: 对
18. (判断题)
用于直接中断最内层循环的语句是break。
- A. 对
- B. 错
正确答案: 对
19. (判断题)
下面程序段循环一次也不执行。
int x=10;
while(x=0)
x=x-1;
- A. 对
- B. 错
正确答案: 对
20. (判断题)
执行以下程序段后,x的值为0,y的值为1。
int x, y;
if (x = 0) y = 0;
else y = 1;
- A. 对
- B. 错
正确答案: 对
21. (判断题)
for语句中的表达式可以部分或全部省略,但是两个分号不能省略。
- A. 对
- B. 错
正确答案: 对
22. (判断题)构成数组的各个元素可以有不同的数据类型。
- A. 对
- B. 错
正确答案: 错
23. (判断题)
C语言本身没有输入输出语句。
- A. 对
- B. 错
正确答案: 对
24. (判断题)
一个字符数组就是一个字符串。
- A. 对
- B. 错
正确答案: 错
25. (判断题)
静态链表与动态链表在元素的插入、删除上类似,不需做元素的移动。
- A. 对
- B. 错
正确答案: 对
26. (判断题)
数组名实际是该数组首元素的起始地址。
- A. 对
- B. 错
正确答案: 对
27. (判断题)
以下程序的输出结果是15。
#define T(x,y) (x)<(y)?(x):(y)
void main()
{
int i=10,j=15,k;
k=10*T(i,j);
printf("%d",k);
}
- A. 对
- B. 错
正确答案: 对
28. (判断题)
在C语言的源程序函数中,函数体中可以没有任何语句。
- A. 对
- B. 错
正确答案: 对
29. (判断题)
8E2是不合法的整型常量。
- A. 对
- B. 错
正确答案: 对
30. (判断题)
数组适合于随机存储,而链表不适合。
- A. 对
- B. 错
正确答案: 对
31. (判断题)
语句while(!y)中的!y等价于y!=0。
- A. 对
- B. 错
正确答案: 错
32. (判断题)
若调用一个函数,且此函数中没有return语句,则该函数没有返回值 。
- A. 对
- B. 错
正确答案: 错
33. (判断题)
数组比链表的插入与删除运算更方便。
- A. 对
- B. 错
正确答案: 错
34. (判断题)
调用strlen("abcd\0ed\0g")的返回值为4。
- A. 对
- B. 错
正确答案: 对
35. (判断题)
if-else语句的一般形式如下,若表达式的值为“真”,则执行语句1;否则,就执行语句2。
if (表达式) 语句1
else 语句2
- A. 对
- B. 错
正确答案: 对
36. (判断题)
下列函数调用语句中含有5个实参。
fun((a1,a2),(a3,a4,a5));
- A. 对
- B. 错
正确答案: 错
37. (判断题)
C语言允许直接访问内存地址。
- A. 对
- B. 错
正确答案: 对
38. (判断题)
1C_fun是合法的标识符。
- A. 对
- B. 错
正确答案: 错
39. (判断题)
C语言的每条可执行语句最终都将被转换成二进制的机器指令。
- A. 对
- B. 错
正确答案: 错
40. (判断题)
C语言中的函数可以嵌套调用,但不可以嵌套定义。
- A. 对
- B. 错
正确答案: 对
41. (判断题)
if-else语句的一般形式如下,其中的语句1、语句2只能是一条语句。
if (表达式) 语句1
else 语句2
- A. 对
- B. 错
正确答案: 错
42. (判断题)
若有int x=8,y=5,z;则执行语句“z=x/y+0.4”后,z的值为1。
- A. 对
- B. 错
正确答案: 对
43. (判断题)
已知带头结点的双向循环链表L,判断其为空表的条件是L->next==L && L->prior==L。
- A. 对
- B. 错
正确答案: 对
44. (判断题)此条枚举类型的定义是正确的。
enum a{one=9,two=-1,three};
- A. 对
- B. 错
正确答案: 对
三. 简答题(共23 题)
1. (简答题)
进制转换。
题目描述
题目内容:编写程序,输入一个八进制数(不超过3位),输出该数对应的十进制数。
输入样例:17
输出样例:17(8)=15(10)
输入样例:111
输出样例:111(8)=73(10)
测试用例
用例1
分数: 10
错误提示:
用例2
分数: 10
错误提示:
题目运行时间限制: 500ms
题目运行内存限制: 32000kb
我的答案:
正确答案:
#include<stdio.h>
int main()
{
int num,ge,shi,bai;
scanf("%d",&num);
bai=num/100;
shi=num%100/10;
ge=num%10;
printf("%d(8)=%d(10)",num,ge+shi*8+bai*8*8);
return 0;
}
2. (简答题)
时间换算。题目描述
题目内容:编写程序,实现输入的时间,屏幕显示一秒后的时间。显示格式为HH:MM:SS。
程序需要处理以下三种特殊情况:
(1)若秒数加1后为60,则秒数恢复到0,分钟数增加1;
(2)若分钟数加1后为60,则分钟数恢复到0,小时数增加1;
(3)若小时数加1后为24,则小时数恢复到0。
输入样例:18:1:2
输出样例:18:01:03
输入样例:20:12:59
输出样例:20:13:00
输入样例:23:59:59
输出样例:00:00:00
测试用例
用例1
分数: 10
错误提示:
用例2
分数: 10
错误提示:
用例3
分数: 10
错误提示:
题目运行时间限制: 500ms
题目运行内存限制: 32000kb
我的答案:
正确答案:
#include <stdio.h>
int main()
{
int HH, MM, SS;
scanf("%d:%d:%d",&HH,&MM,&SS);
SS++;
if (SS >= 60){
SS = 0;
MM ++;
}
if (MM >= 60){
MM = 0;
HH ++;
}
if (HH >= 24){
HH = 0;
MM = 0;
SS = 0;
}
printf("%02d:%02d:%02d\n",HH,MM,SS);
}
3. (简答题)
组合数。题目内容:本题要求编写程序,根据公式Cnm= 算出从n个不同元素中取出m个元素(m≤n)的组合数。建议定义和调用函数fact(n)计算n!,其中n的类型是int,函数类型是double。
输入格式:输入在一行中给出两个正整数m和n(m≤n),以英文,分隔。
输出格式:输出组合数计算结果,题目保证结果在类型范围内。
输入样例:2,7
输出样例:21
时间限制:500ms内存限制:32000kb
我的答案:
正确答案:
#include <stdio.h>
double factorial(int n);
int main(){
int n,m,result;
scanf("%d,%d", &m, &n);
result=factorial(n)/(factorial(m)*factorial(n-m));
printf("%d", result);
return 0;
}
double factorial(int n){
if(n<=1)
return 1;
return n*factorial(n-1);
}
4. (简答题)
爬楼梯。题目内容:可爱的小明特别喜欢爬楼梯,他有的时候一次爬一个台阶,有的时候一次爬两个台阶,有的时候一次爬三个台阶。如果这个楼梯有n个台阶,小明一共有多少种爬法呢?n值从键盘输入。
输入格式:输入一个整数n,(1<=n<46)。
输出格式:输出当楼梯阶数是n时的上楼方式总数。
输入样例:1
输出样例:1
输入样例:4
输出样例:7
输入样例:24
输出样例:1389537
时间限制:500ms内存限制:32000kb
我的答案:
正确答案:
#include<stdio.h>
int f(int n){
n++;
int i;
int table[n];
for(i=0;i<n;i++)
table[i]=0;
table[1]=1;
table[2]=2;
table[3]=4;
for(i=4;i<n;i++){
table[i]=table[i-1]+table[i-2]+table[i-3];
}
return table[n-1];
}
int main(){
int n;
scanf("%d", &n);
if(n>=1&&n<46){
printf("%d",f(n));
}
return 0;
}
5. (简答题)
求解梯形的面积题目描述
题目内容:从键盘上输入一个梯形的上底a、下底b和高h,输出梯形的面积。
输入样例:2,4,3
输出样例:9.000000
输入样例:2.4,2.6,3.8
输出样例:9.500000
测试用例
用例1
分数: 10
错误提示:
用例2
分数: 10
错误提示:
题目运行时间限制: 500ms
题目运行内存限制: 32000kb
我的答案:
正确答案:
#include<stdio.h>
int main()
{
float width_up,width_butt,height;
float result;
scanf("%f,%f,%f",&width_up,&width_butt,&height);
result = ((width_up + width_butt) * height)/2;
printf("%f",result);
}
6. (简答题)
追查车号。
题目描述
题目内容:一辆卡车违反交通规则,撞人逃逸。现场三人目击事件,但都没有记住车号,只记下车的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的;丙是位数学家,他说:四位的车号正好是一个整数的平方。请根据以上线索求出车号。
输出格式:The number is ****。
测试用例
用例1
分数: 20
错误提示:
题目运行时间限制: 500ms
题目运行内存限制: 32000kb
我的答案:
正确答案:
#include<stdio.h>
#include <math.h>
int main(){
int i,j,k,l;
for(i=0;i<10;i++){
j=i;
for(k=0;k<10;k++){
l=k;
if(i==k){
continue;
}else{
double nums=sqrt(i*1000+j*100+k*10+l);
if((int)nums==nums){
int plateNum=(i*1000+j*100+k*10+l);
printf("The number is %d.",plateNum);
break;
}else{
continue;
}
}
}
}
return 0;
}
7. (简答题)
正向建立单链表。题目描述
题目内容:输入若干个正整数(输入-1为结束标志),要求按输入数据的逆序建立单链表并输出。
输入格式:一行内输入若干个正整数,之间用空格隔开,并以-1结束。
输出格式:一行内输出建立的单链表数据结果,之间用两个分隔符 -- 隔开,结束标志-1不输出。
输入样例:2 4 6 8 10 -1
输出样例:--2--4--6--8--10
测试用例
用例1
分数: 25
错误提示:
题目运行时间限制: 500ms
题目运行内存限制: 32000kb
我的答案:
正确答案:
#include "stdio.h"
#include "stdlib.h"
typedef struct Node {
int data;
struct Node *next;
} LList;
int main()
{
LList * header = NULL;
struct Node * p;
while (1)
{
int input;
scanf("%d", &input);
if (input == -1) break;
if (!header)
{
header = (struct Node *)malloc(sizeof(struct Node));
p = header;
header->data = input;
header->next = NULL;
}
else
{
p->next = (struct Node *)malloc(sizeof(struct Node));
p = p->next;
p->data = input;
p->next = NULL;
}
}
p = header;
struct Node * preP = NULL;
p = header;
int i = 0;
while (p)
{
printf("--%d", p->data);
p = p->next;
}
return 0;
}
8. (简答题)
最大公约数与最小公倍数。题目内容:编写两个函数,分别求两个整数的最大公约数和最小公倍数,并用主函数调用这两个函数,然后输出结果。两个整数由键盘输入。约定最大公约数为正整数,两数里有负的则最小公倍数就为负的。
输入格式:输入均不为0的整数n和m(n与m的乘积还在整数范围内)(两数之间用英文,隔开)
输出格式:输出这两个整数的最大公约数和最小公倍数(两结果之间用英文,隔开)
输入样例:24,36
输出样例:12,72
输入样例:-48,128
输出样例:16,-384
时间限制:500ms内存限制:32000kb
我的答案:
正确答案:
#include<stdio.h>
int gcd(int a,int b)
{
if(a<0)
a=-a;
if(b<0)
b=-b;
return b==0?a:gcd(b,a%b);
}
int lcm(int a,int b,int p)
{
return (a*b)/p;
}
int main()
{
int a,b;
int p,q;
scanf("%d,%d",&a,&b);
p = gcd(a,b);
q = lcm(a,b,p);
printf("%d,%d",p,q);
}
9. (简答题)
2.特征数判断。
题目内容:编写程序,判断输入的正整数是否既是5又是7的整倍数。
输入样例:-9
输出样例:Data error!
输入样例:33
输出样例:No!
输入样例:35
输出样例:Yes!
输入样例:0
输出样例:Data error!
测试用例
用例1
分数: 5
错误提示:
用例2
分数: 10
错误提示:
用例3
分数: 10
错误提示:
用例4
分数: 5
错误提示:
题目运行时间限制: 500ms
题目运行内存限制: 32000kb
我的答案:
正确答案:
10. (简答题)
三天打鱼两天晒网。题目描述
题目内容:中国有句俗语:“三天打鱼两天晒网”,某人从1990年1月1日起开始“三天打鱼两天晒网”。问这个人在以后的某一天是在“打鱼”还是在“晒网”?
输入样例:1990-1-3
输出样例:他在打鱼
输入样例:2018-11-11
输出样例:他在晒网
测试用例
用例1
分数: 15
错误提示:
用例2
分数: 15
错误提示:
题目运行时间限制: 500ms
题目运行内存限制: 32000kb
我的答案:
正确答案:
#include<stdio.h>
struct date{
int year;
int month;
int day;
};
int days(struct date day);
int main()
{
struct date today,term;
int yearday=0,year,day;
scanf("%d-%d-%d",&today.year,&today.month,&today.day);
term.month=12;
term.day=31;
for(yearday=0,year=1990;year<today.year;year++)
{
term.year=year;
yearday+=days(term);
}
yearday%=5;
yearday+=days(today);
day=yearday%5;
if(day>0&&day<4) printf("他在打鱼");
else printf("他在晒网");
}
int days(struct date day)
{
static int day_tab[2][13]=
{{0,31,28,31,30,31,30,31,31,30,31,30,31},
{0,31,29,31,30,31,30,31,31,30,31,30,31},
};
int i,lp;
lp=(day.year%4==0&&day.year%100!=0)||(day.year%400==0);
for(i=1;i<day.month;i++)
day.day+=day_tab[lp][i];
return day.day;
}
11. (简答题)
图形打印。
题目描述
题目内容:编写程序,打印以下图形(行n的值由键盘输入)。
*******
******
*****
****
***
**
*
输入样例:5
输出样例: *****
***
**
*
输入样例:9
输出样例: *********
********
*******
******
*****
****
***
*
测试用例
用例1
分数: 10
错误提示:
用例2
分数: 10
错误提示:
题目运行时间限制: 500ms
题目运行内存限制: 32000kb
我的答案:
正确答案:
#include<stdio.h>
#include<conio.h>
int main()
{
int a,i,j,k;
scanf("%d",&a);
for(j=1;j<=a;j++)
{ if(j!=1)
for (i=1;i<=j-1;i++)
printf(" ");
for(k=1;k<=a-j+1;k++)
printf("*");
printf("\n");
}
getch();
return 0;
}
12. (简答题)
逆序打印。题目描述
题目内容:输入一个三位的正整数,按逆序打印出该数的各位数字。输入样例:369
输出样例:963
输入样例:680
输出样例:086
测试用例
用例1
分数: 10
错误提示:
用例2
分数: 10
错误提示:
题目运行时间限制: 500ms
题目运行内存限制: 32000kb
我的答案:
正确答案:
#include<iostream.h>
int main()
{
int num;
cin>>num;
while(num>0)
{
cout<<num%10;
num/=10;
}
}
13. (简答题)
100以内的素数。题目内容:求100以内的全部素数,每行输出10个。素数就是只能被1和自身整除的正整数,1不是素数,2是素数。要求定义和调用函数prime(m)判断m是否为素数,当m为素数时返回1,否则返回0。
输入格式:没有输入数据。
输出格式:输出100以内的素数,每行输出10个
提示:可使用输出语句printf("%6d",m);来控制素数之间的输出间隔。
输出样例:
2 3 5 7 11 13 17 19 23 29
31 37 41 43 47 53 59 61 67 71
73 79 83 89 97
时间限制:500ms内存限制:32000kb
我的答案:
正确答案:
#include <stdio.h>
#include <math.h>
int prime(int m)
{
int i;
if(m<2)
return 0;
if(m==2)
return 1;
for (i=2; i<=(int)sqrt((double)m); i++)
if (m%i==0)
return 0;
return 1;
}
int main()
{
int m,j=0;
for (m=1; m<=100; m++)
if(prime(m))
{
printf("%6d",m);
j++;
if(j%10==0)
printf("\n");
}
return 0;
}
14. (简答题)
特征四位数。
题目描述
题目内容:已知四位数3025具有一个特殊性质:它的前两位数字30与后两位数字25之和是55,而55的平方正好等于3025。编程找出所有具有这种性质的四位数。
输出格式:每一个四位数自占一行
测试用例
用例1
分数: 20
错误提示:
题目运行时间限制: 500ms
题目运行内存限制: 32000kb
我的答案:
正确答案:
#include<stdio.h>
int main()
{
int i,n,m;
for(i=1000;i<10000;i++)
{
m=i%100;
n=i/100;
if((n+m)*(n+m)==i)
printf("%d\n",i);
}
return 0;
}
15. (简答题)
三色球题目描述
题目内容:一个袋子中有红、黄、兰3个球,依次从袋子中拿出所有的球。编写一个程序,输出所有的拿法。
输出格式:每一种方案自成一行,方案中球的颜色分别用red,yellow,blue来表示,中间用英文句号 . 隔开。
输出样例:其中的两种方案输出结果
red.yellow.blue.
red.blue.yellow.
测试用例
用例1
分数: 30
错误提示:
题目运行时间限制: 500ms
题目运行内存限制: 32000kb
我的答案:
正确答案:
#include <stdio.h>
int main()
{
printf("red.yellow.blue.\n");
printf("red.blue.yellow.\n");
printf("yellow.red.blue.\n");
printf("yellow.blue.red.\n");
printf("blue.red.yellow.\n");
printf("blue.yellow.red.\n");
}
16. (简答题)
逆置单链表。题目描述
题目内容:一个单链表L=(a1 , a2 , … , an-1 , an),其逆单链表定义为L’=( an , an-1 , … , a2 , a1),编写算法将单链表L逆置,要求逆单链表仍占用原单链表的空间。
输入格式:一行内输入原单链表中的数据(若干个正整数,之间用空格隔开,并以-1结束)
输出格式:一行内输出建立的原单链表数据结果,之间用两个分隔符 -- 隔开,结束标志-1不输出。
下一行内输出逆置后的单链表数据结果,之间用两个分隔符 -- 隔开。
输入样例:2 4 6 8 10 -1
输出样例:--2--4--6--8--10
--10--8--6--4--2
测试用例
用例1
分数: 30
错误提示:
题目运行时间限制: 500ms
题目运行内存限制: 32000kb
我的答案:
正确答案:
#include <stdio.h>
#include <stdlib.h>
typedef struct node {
int data;
struct node *next;
}Node;
//创建链表
Node *CreatList(void)
{
int val, i;
Node *phead, *p, *q;
phead = NULL;
while(1)
{
scanf("%d", &val);
if(val==-1)
break;
p = (Node *)malloc(sizeof(Node));
p->data = val;
if(NULL == phead)
q = phead = p;
else
q->next = p;
q = p;
}
p->next = NULL;
return phead;
}
//链表的逆置
Node *ReverseList(Node *phead)
{
Node *p, *q, *r;
p = phead;
q=r=NULL;
while(p)
{
q = p->next;
p->next = r;
r = p;
p = q;
}
return r;
}
//输出链表
void ShowList(Node *phead)
{
Node *p;
p = phead;
while(p)
17. (简答题)
天数判断。
题目描述
题目内容:编写程序,从键盘上输入年份和月份,计算并输出这一年的这一月共有多少天。
输入样例:2019-3
输出样例:31
输入样例:2019-9
输出样例:30
输入样例:2019-2
输出样例:28
输入样例:2004-2
输出样例:29
测试用例
用例1
分数: 5
错误提示:
用例2
分数: 5
错误提示:
用例3
分数: 10
错误提示:
用例4
分数: 10
错误提示:
题目运行时间限制: 500ms
题目运行内存限制: 32000kb
我的答案:
正确答案:
#include <stdio.h>
int main()
{
int m,y;
int days[12] = {31, 28, 31,30,31,30,31,31,30,31,30,31};
scanf("%d-%d",&y,&m);
if(m == 2)
{
if(y%400==0 || (y%4==0 && y%100!=0))//闰年。
printf("29\n");
else printf("28\n");
}
else
printf("%d\n", days[m-1]);
return 0;
}
18. (简答题)
求和S。
题目描述
题目内容:求s=1+(1+2)+…+(1+2+3+…+n)的值,其中n由键盘输入。
输入样例:3
输出样例:10
输入样例:8
输出样例:120
输入样例:0
输出样例:Error!
输入样例:-1
输出样例:Error!
测试用例
用例1
分数: 10
错误提示:
用例2
分数: 10
错误提示:
用例3
分数: 5
错误提示:
用例4
分数: 5
错误提示:
题目运行时间限制: 500ms
题目运行内存限制: 32000kb
我的答案:
正确答案:
19. (简答题)
链表合并。题目描述
题目内容:已知单链表LA=(a1,a2,…,am)和LB=(b1,b2,…,bn),编写程序按以下规则将它们合并成一个单链表LC,要求新表 LC利用原表的存储空间。
LC=(a1,b1,…,am,bm,bm+1,…,bn),m<=n
或者
LC=(a1,b1,…,bn,an,an+1,…,am),m>n
输入格式:一行内输入单链表LA中的数据(若干个正整数,之间用空格隔开,并以-1结束)
一行内输入单链表LB的数据(若干个正整数,之间用空格隔开,并以-1结束)
输出格式:一行内输出合并后单链表LC的数据结果,之间用两个分隔符 -- 隔开,结束标志-1不输出。
输入样例:1 3 5 7 -1
2 4 6 -1
输出样例:--1--2--3--4--5--6--7
测试用例
用例1
分数: 20
错误提示:
用例2
分数: 20
错误提示:
题目运行时间限制: 500ms
题目运行内存限制: 32000kb
我的答案:
正确答案:
#include<stdlib.h>
#include <stdio.h>
typedef int ElemType;
typedef struct linknode
{
ElemType data;
struct linknode *next;
}LNode, *LinkList;
//创建链表
LinkList Create(void)
{
LinkList head,current;
ElemType d;
LNode *s;
current=head=(LinkList)malloc (sizeof(LNode)); //head节点
current->data=0;
while (1)
{
scanf("%d",&d);
if(d==-1)
break;
s=(LinkList)malloc (sizeof(LNode)); //为新节点分配内存空间
s->data=d;
current->next=s;
current=s;
d=getchar();
}
current->next=NULL; //最后尾指针为NULL
return head;
}
//输出链表
void List(LinkList L)
{
LinkList p;
p=L->next; //
while (p!=NULL)
{
printf ("--%d",p->data);
p=p->next;
}
}
//合并链表
void CoalitionLinkList(LinkList L1,LinkList L2)
{
LinkList p1=L1->next;
LinkList p2=L2->next;
20. (简答题)
求解矩形的面积 题目描述
题目内容:编写一个程序,从键盘读入一个矩形的两个边的值(整数),输出矩形面积。输入样例:3,5
输出样例:15
测试用例
用例1
分数: 10
错误提示:
题目运行时间限制: 500ms
题目运行内存限制: 32000kb
我的答案:
正确答案:
#include<stdio.h>
int main()
{
int width,height;
int result;
scanf("%d,%d",&width,&height);
result = width*height;
printf("%d",result);
}
21. (简答题)
星期推算。
题目描述
题目内容:假设今天是星期日,编写一个程序,求2019天后是星期几。
输出样例:星期*(星期一、星期二、星期三、星期四、星期五、星期六、星期日)
测试用例
用例1
分数: 20
错误提示:
题目运行时间限制: 500ms
题目运行内存限制: 32000kb
我的答案:
正确答案:
#include<stdio.h>
int main()
{
int a;
int b = 2019;
a = (b % 7);
if(a == 0)
printf("星期日");
if(a == 1)
printf("星期一");
if(a == 2)
printf("星期二");
if(a == 3)
printf("星期三");
if(a == 4)
printf("星期四");
if(a == 5)
printf("星期五");
if(a == 6)
printf("星期六");
return 0;
}
22. (简答题)
温度转换。题目描述
题目内容:编写程序,计算并输出华氏温度为80F所对应的摄氏温度C。
转换公式为:C=5*(F-32)/9
输出样例:**.******测试用例
用例1
分数: 20
错误提示:
题目运行时间限制: 500ms
题目运行内存限制: 32000kb
我的答案:
正确答案:
#include<iostream.h>
int main()
{
float f,c;
cin>>f;
c = 5*(f-32)/9;
cout<<c;
}
23. (简答题)
时刻转换。
题目描述
题目内容:编写一个程序,从键盘输入某个分钟数,将其转换成用小时和分钟表示,并将表示结果输出。
输入样例:320
输出样例:320(m)=5(h):20(m)
输入样例:68
输出样例:68(m)=1(h):08(m)
输入样例:55
输出样例:55(m)=0(h):55(m)
测试用例
用例1
分数: 10
错误提示:
用例2
分数: 5
错误提示:
用例3
分数: 5
错误提示:
题目运行时间限制: 500ms
题目运行内存限制: 32000kb
我的答案:
正确答案:
#include<stdio.h>
int main(){
int num;
int a,b;
scanf("%d", &num);
a=num/60;
b=num%60;
printf("%d(m)=%d(h):%d(m)",num,a,b);
}