当前位置:首页 » 编程语言 » 浙大c语言题库
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

浙大c语言题库

发布时间: 2022-11-19 15:31:11

㈠ 浙大版《c语言程序设计实验与习题指导(第3版)》答案 求哥哥帮忙

一本书的答案吗,这里写不完的。

㈡ 浙大ZOJ 1001 C语言a+b问题

while(scanf("%d %d",&a, &b) != EOF)这一句可以让你实现多组a b的输入 (EOF是End Of file的缩写) 按你的写法输入一组a+b之后程序就会终止 OJ无法实现多组输入 当然判错啦

㈢ c语言计算机二级考试选择题如图

全国计算机二级考试试题题库(附答案)
下列各题 A) 、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项在答题
卡相应位置上涂黑,答在试卷上不得分。
(1) 应用软件是指
A) 所有能够使用的软件 B) 能被各应用单位共同使用的某种软件
C) 所有微机上都应使用的基本软件 D) 专门为某一应用目的而编制的软件
(2) 下列述叙中错误的是
A) 计算机要经常使用不要长期闲置不用
B) 为了延长计算机的寿命,应避免频繁开关计算机
C) 在计算机附近应避免磁场干扰
D) 计算机用几小时后,应关机一会儿再用
(3) 下列字符中,ASCII码值最小的是
A) A B) a C) Z D) x
(4) 用晶体管作为电子器件制成的计算机属于
A) 第一代 B) 第二代 C) 第三代 D) 第四代
(5) 下列各不同进制的四个无符号数中,最小的数是
A) ()2 B) (37)8 C) (75)10 D) (2A)16
(6) 二进制数转换成十六进制数是
A) B) C) D)
(7) 下列各无符号十进制数中,能用八位二进制表示的是
A) 296 B) 333 C) 256 D) 199
(8) 计算机的软件系统可分类为
A) 程序与数据 B) 系统软件与应用软件
D) 操作系统与语言处理程序 D) 程序、数据与文档
(9) 486机中的CPU同时能处理的二进制位数为
A) 8 B) 16 C) 32 D) 64
(10) 在使用计算机的过程中,需要重新启动DOS,则要
A) 按Ctrl+Break键 B) 按^C键 C) 按Ctrl+Alt+Del键 D) 按^H键
(11) 现要从软盘启动DOS(软盘中已存有DOS系统),设有如下一些操作:①打开计算机
电源;②将该软盘插入A驱动器;③关好A驱动器门。则冷启动的操作顺序应为
A) ①→②→③ B) ③→②→① C) ②→①→③ D) ②→③→①
(12) 设当前盘中某一文件路径为\A\C\B\,当前目录为\A。下列命令中错误的是
A) CD.. B) RD \A\C\B
C) TYPE \A\C\B\ D) TYPE C\B\
(13) 设当前盘中的根目录下有一子目录AB,在子目录AB下有一文件。现要查看文件
的内容,应使用命令
A) TYPE \AB B) TYPE \AB\
C) TYPE \ D) DIR \AB\
(14) 自动批处理文件必须放在
A) C盘根目录中 B) A盘根目录中
C) 启动盘的任一个目录中 D) 启动盘的根目录中
(15) 设当前盘当前目录为C:\USER\XY\P,且当前盘当前目录为空,则下列命令中能正
确执行的是
A) RD C:\USER\XY\P B) RD USER\XY\P
C) MD \USER\XY\P\USER D) MD \USER\XY\P\X\Y
(16) 下列DOS命令中,合法的是
A) DISKCOMP B) TYPE >>
C) COMP A: B: D) COMP A: A:
(17) 设当前盘为C盘,所用的所有软盘已格式化,且容量相同,则下列DOS命令中错
误的是
A) DISKCOPY A: A: B) COPY A:*.* C) COPY *.* D) COPY A:*.* C:
(18) 下列DOS命令中错误的是
A) TYPE >PRN B) TYPE PRN
C) COPY *.TXT PRN D) COPY CON PRN
(19) 下列四组DOS命令中,互相等价的一组是
A) COPY A:*.* B:与DISKCOPY A: B:
B) COPY +与TYPE >>
C) COPY + 与COPY +
D) TYPE *.FOR>CON与COPY *.FOR CON
(20) 设C盘目录结构如下:
且C盘根目录下文件的内容为
CD FORTRAN
CD \TC
如果在A驱动器中插入一张根目录中只有扩展名为.C的若干文件(即A盘中无DOS系统
文件)的软盘片,则由C盘启动DOS系统后,第一次键入下列命令中,正确的是
A) COPY A:\*.C B) COPY A:\*.C TC
C) COPY A:\*.C FORTRAN D) CD USER
(21) C语言提供的合法的数据类型关键字是
A) Double B) short C) integer D) Char
(22) 在C语言中,合法的长整型常数是
A) 0L B) 4962710 C) D)
(23) 表达式:10!=9的值是
A) true B) 非零值 C) 0 D) 1
(24) 合法的C语言中,合法的长整型常数是
A) '\t' B) "A" C) 65 D) A
(25) 若有说明和语句:
int a=5;
a++;
此处表达式a++的值是
A) 7 B) 6 C) 5 D) 4
(26) 在下列选项中,不正确的赋值语句是
A) ++t; B) n1=(n2=(n3=0)); C) k=i==j; D) a=b+c=1;
(27) 若有说明:int i,j=7, *p=&i;,则与i=j;等价的语句是
A) I= *P; B) *P=*&J; C) i=&j; D) i=* *p;
(28) 不能把字符串:Hello!赋给数组b的语句是
A) char b[10]={'H','e','l','l','o','!'};
B) char b[10];b="Hello!";
C) char b[10];strcpy(b,"Hello!");
D) char b[10]="Hello!";
(29) 若有以下说明:
int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};
char c='a',d,g;
则数值为4的表达式是
A)a[g-c] B)a[4] C)a['d'-'c'] D)a['d'-c]
(30) 若有以下说明:
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
则数值为6的表达式是
A) *p+6 B) *(p+6) C) *p+=5 D) p+5
(31) 若有以下说明:
int w[3][4]o={{0,1},{2,4},{5,8}};
int(*p)[4]=w;
则数值为4的表达式是
A) *w[1]+1 B) p++,*(p+1) C) w[2][2] D) p[1][1]
(32) 若程序中有下面的说明和定义
struct abc
{int x;char y;}
struct abc s1,s2;
则会发生的情况是
A) 编译进错 B) 程序将顺利编译`连接`执行
C) 能顺利通过编译`连接`但不能执行 D) 能顺利通过编译`但连接出错
(33) 能正确表示a≥10或a≤0的关系表达式是
A)a>=10 or a<=0 B)a>=10│a<=0
C)a>=10││a<=0 D)a>=10 ││a<=0
(34) 下面程序的输出是
main()
{ int x=3,y=6,a=0;
while(x++!=(y+=o1))
{ a+o=1;
if(y
#include
main()
{ char ss[10]="12345";
strcat(ss,"6789");
gets(ss);printf("%s\n",ss);
}
A) ABC B) ABC9 C) 123456ABC D) ABC456789
(35) 下面程序的输出是
main()
{ char *a="";
int v1=0,v2=0,v3=0,v4=0,k;
for(k=0;s[k];k++)
switch(s[k])
{ default:v4++;
case '1': v1++;
case '3': v3++;
case '2': v2++; }
printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4); }
A) v1=4,v2=2,v3=1,v4=1 B) v1=4,v2=9,v3=3,v4=1
C) v1=5,v2=8,v3=6,v4=1 D) v1=8,v2=8,v3=8,v4=8
(36) 下面程序的输出是
main()
{int k=11;printf("k=%d,k=%o,k=%x\n",k,k,k);}
A)k=11,k=12,k=11 B)k=11,k=13,k=13 C)k=11,k=013,k=0xb D)k=11,k=13,k=b
(37) 若有以下程序段,w和k都是整型变量:

w=k;
LB: if(w==0) go to LE;
w--;
printf("*");
goto LB;
LE: ┆
则不能与上面程序段等价的循环语句是
A)for(w=k;w!=0;w--) printf("*"); B)for(w=k;w;--w)printf("*");
C)w=k; D)w=k;
while(w--!=0)printf("*");w++; do{ w--;printf("*");}while(w!=0);
(38) 若有说明,double *p,a;则能通过scanf语句正确给输入项读入数据的程序段是
A)*p=&a; scanf("%lf",p); B)p=(double *)malloc(8);scanf("%f",p);
C) p=&a;scanf("%lf",a); D)p=&a; scanf("%le",p);
(39) 当执行下面程序且输入:ABC时,输出的结果是
#include
#include
main()
{ char ss[10]="12345";
gets(ss);printf("%s\n",ss); }
A) ABC B) ABC9 C) 123456ABC D) ABC456789
(40) 若有以下的说明和语句:
main()
{int t[3][2], *pt[3],k;
fpr(k=o; k<3;k++)pt[k]=t[k];
}
则以一选项中能正确表示t数组元素地址的表达式是
A) &t[3][2] B) *pt[0] C) *(pt+1) D) &pt[2]
(41) 下面程序输出数组中的最大值,由s指针指向该元素.
main()
{ int a[10]={6,7,2,9,1,10,5,8,4,3,},*p,*s;
flr(p=a, s=a; p-a<10; p++)
if(---?---)s=p;
printf("The max:%d",*s):
}
则在if语句中的判断表达式应该是
A) p>s B) *p>*s C) a[p]>a[s] D) p-a>p-s
(42) 下面程序的输出是
#include
main()
{ char*a="abcdefgh";
fun(a);puts(a); }
fun (char * s)
{ int x=0,y;char c;
for(y=strlen(s)-1;x
A)abcdefgh B)hgfdecba C)dcbahgfe D)hgfedcba
(43) 若有以下函数调用语句: fun(a+b,(x,y),fun(n+k,d,(a,b)));在此函数调用语句
中实参的个数是
A)3 B)4 C)5 D)6
(44) 下面程序的输出是
main()
{ int t=1; fun(fun(t));}
fun(int h)
{ static int a[3]={1,2,3};
int k;
for(k=0;k<3;k++) a[k]+=a[k]-h;
for(k=1;k<3;k++) printf("%d",a[k]);
printf("\n"); return(a[h]);}
A)1,2,3, B)1,3,5, C) 1,3,5, D) 1,3,5,
1,5,9, 1,3,5, 0,4,8, -1,3,7,
(45) C语言中,函数的隐含存储类别是
A)auto B)static C)extern D)无存储类别
(46) 下面程序的输出是
int w=3;
main()
{ int w=10; printf("%d\n",fun(5)*w); }

㈣ 谁有大一C语言考试题快考试了,跪求题库··

单项选择题(每小题2分,共50分)

1、一个C程序的执行是从___A__。

A、本程序的main函数开始,到main函数结束

B、本程序的main函数开始,到本程序文件的最后一个函数结束

C、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束

D、本程序文件的第一个函数开始,到本程序main函数结束

2、C语言程序的基本单位是___C___。

A、程序行 B、语句

C、函数 D、字符

3、请选出可用作C语言用户标识符的一组标识符___B___。

A、void B、a3_b3 C、For D、2a

define _123 -abc DO

WORD IF ase sizeof

主要特点

C语言是一种结构化语言,它有着清晰的层次,可按照模块的方式对程序进行编写,十分有利于程序的调试,且c语言的处理和表现能力都非常的强大,依靠非常全面的运算符和多样的数据类型,可以轻易完成各种数据结构的构建,通过指针类型更可对内存直接寻址以及对硬件进行直接操作,因此既能够用于开发系统程序,也可用于开发应用软件。

以上内容参考:网络-c语言

㈤ C语言题急求!~!~!~!~!~!~!~!~!~!

1.
最初的C语言是为描述和实现
UNIX
操作系统而设计的。
2.
C语言规定,标识符必须以字母或
下划线
开头。
3.
C语言的double型数据在内存中占用
8
个字节的存储单元。
4.
×C语言的变量有
2
种存储类型,其中
static
型变量不进行初始化时,初值自动为0
5.写出下列表达式的求值结果:
(1)
2+3<=2
0
(2)
5/3+2
3
(3)
!
(3>2)||8!=7
1
(4)
3+7%3
4
6.已知int=12;
执行语句a*=2+4后,变量a的值为
24

7.已知int=2,b;
执行语句b=
a--;
后,变量a的值为
1
,
b的值为
2

8.若有int
a=2,b=1,c=0;
执行语句c=a++
-
b
-
-;
后,变量c的值为
1
,b的值为
0
一、
判断题(1×5分,正确的画√,错误的画×)
(×)1.
C语言俗称“低级语言的高级形式”,这说明C语言的功能不强。
(√)2.
C语言允许用实型表达式向整型变量赋值。
×(×)3.
C语言的全局变量只能是extern存储类型。
×(×)4.
已知int
a[4],*p;则语句p=&a;是正确的。
(×)5.
下面的程序段构成死循环。
a=5;
while
(1)
{a--;
if
(a<0)
break
;
}
三、单项选择题:(2×10分)
1.
在IBM-PC机中,unsigned
int类型表示的数据范围是(
D
)。
A)0-127
B)0-255
C)0-32767
D)0-65535
2.
下列符号中,合法的C常量是(
C
)。
A)
1e8.2
B)
0XFFH
C)
‘\n’
D)
089
3.语句x=3;
do{printf(“%d”,x);x--}while(x=
=0);
的执行结果是(
C
)。
A)3210
B)
321
C)3
D)无任何显示
4.
已知p、q
是两个同类型的指针变量,下列表达式有语法错误的是(
B
)。
(A)p!=NULL&&p=
=q
(B)
p*q
(C)p++,q--
(D)p-q+1
5.若k=
-1,
表达式k=
k>=0
?
(k-2)
:
(
k+2)
的值为(
D
)。
(A)-3
(B)
-2
(C)1
(D)2
×6.下面关于C函数的说法中正确的是(
B
)。
A)C函数的返回值类型必须是整型、实型或指针三者之一
B)C函数的返回值必须用return语句带回主函数
C)C函数允许递归调用,也允许在函数体中定义子函数
D)任何C函数必须使用return语句带回主程序
×7.若定义typedef
struct
user
{int
num;
char
name[21];
long
code;}
UserTp,;
则表达式
sizeof(UserTp)的值为(
D
)。
A)
0
B)
21
C)
31
D)
27
×8.已知static
int
a[
]={1,2,3,4};
int
*p;
若有p=a+2;
则*p++的值为(
C
)。
A)1
B)2
C)3
D)4
×9.定义C函数时,若缺省函数返回值类型,则返回值类型为(
A
)。
A)int
B)char
C)void
D)char
*
10.
×为只读操作打开正文(文本)文件,正确的打开方式是(
A
)。
A)
“r+”
B)
“a”
C)
“w”
D)
“rb”
四、多项选择题(2×5分,多选或错选不得分,少选得1分)
1.以下数据类型在内存中占用4个字节的是(
BC
)。
A)
int
B)
unsigned
long
C)
float
D)
unsigned
char
×2.
定义char
s[81];
后,能正确输入一个字符串到数组s的语句是(
ABC
)。
A)gets(s);
B)scanf
(”%c”,s);
C)scanf
(”%s”,&s[0]);
D)gets(&s[0]);
3.
以下关于C源程序文件的说法中正确的是(
BCD

A)是一种二进制文件
B)是一种文本(ASCII码)文件
C)可以用DOS的type命令显示其内容
D)文件扩展名一般为c
×4.
下面关于C语言的说法错误的是(
ACD
)。
A)
C函数必须有形式参数
B)
任何复合语句体的{
}中允许定义局部变量
C)
局部变量都存储在动态存贮区
D)
C程序的执行起点只能是main函数
5.
以下程序正确计算p=n!
(n>=0)的是(
AB
)。
A)
for(p=1.0,k=1;k<=n;)
p*=k++;
B)
p=1.0;k=0;while(k<n)
p*=++k;
C)
p=1.0;k=1;do{++k;p*=k;}
while(k<=n);
D)
p=1.0;for(k=n;k>=1;k--)
p*=k--;
五、读程序与程序填空(共22分)
1.阅读以下程序,写出程序运行结果:(共3Χ4分)
×
(1)
#include
”stdio.h”
void
main()
{char
a[61],*s;int
n;
gets(a);
for(s=a;*s;s++)
if(*s>=’a’&&*s<=’z’)
*s-32;
puts(a);
}
若程序的输入为abcb,则输出结果为
ABCD

(2)
#include
”stdio.h”
void
main()
{
int
s=0,k=0;
while(k<4)
{s+=k;k++;printf(“%d”,s);}
}
该程序的输出是
0136

(3)
#include
“stdio.h”
void
main(
)
{static
int
a[5]={2,-15,1,0,-7};
int
i;
for(i=0;i<5;i++)
if(a[i]<0)
a[i]
=
-a[i];
for(i=4;i>=0;i--)
printf(“%4d”,
a[i]);
}
该程序的输出是7
0
1
15
12
(4)
×#include
“stdio.h”
#define
N
5
int
swap(int
*p,
int
*q)
{int
t;
if(p<q)
{t=*p;*p=*q;*q=t;}
return
p<q;
}
void
f(int
a[
],int
m)
{int
*p,
*q;
p=a;q=a+m;
while(swap(p,q))
{p++;
q--}
}
void
main(
)
{int
m,a[N];
for(m=0;m<N;m++)
scanf(“%d”,a+m);
f(a,N-1);
for(m=0;m<N;m++)
printf(“%d”,a[m]);
}
若程序的输入为1
2
3
4
5,
则输出结果为
5
4
3
2
1
2.程序填空:(共10分)
(1)
×以下程序的功能是输入年、月、日,求该日期是这一年的第几天,填空使之完善。
#include
“stdio.h”
int
IsLeap(int
y)
/*
此函数的功能是判断年号y是否为闰年
*/
/*
已知闰年的条件是年号y能被4整除,但不能被100整除,或年号y能被400整除
*/
{int
r;
if(
y%4=
=0&&y%100!=0||y%400=
=0
)
r=1;
else
r=
0
;return
r;}
int
DaysofMonth(int
y,int
m)
/*
此函数的功能是求y年m月的天数
*/
{
int
days;
switch(m)
{case
4,6,9,11:days=30;break;
case
2:if(IsLeap(y))
days=28;else
days=29;break;
default:days=
31
;
}
return
days
;
}
void
main
(
)
{int
k,y,m,d,days;
printf(“Input
year,month,date:”);scanf(“%d%d%d”,&y,&m,&d);
days=0;
for(k=
1
;
k<m
;k++)days+=
DaysofMonth(y,k);
days+=d;
printf(“days=%d\n”,days);}
(2)
下面程序的功能是输出100至1000以内的素数,请填空使之完善。
#include
“stdio.h”
#include

math.h

void
main
(
)
{
int
m,k,j;
for(m=100;m<=1000;m++)
{k=sqrt(m);
for(j=2;
j<=k
;j++)
if(m%j
=
=
0)
break;
if(
j>k或
j>=k+1
)
printf(“%5d”,m);
}
}
六、根据题意编写程序:(3Χ6+10=28分)
1.
编程序,从键盘输入a0,a1,a2,…,an计算s=ao+a1x+a2x2+…+anxn
×2.编程序,将正文(文本)文件中的小写字母变成大写并统计输出文件有多少个字符,
要求文件名由键盘输入。
×3.编程序,输入n个英文单词(n用#define定义为8),然后将这些单词按英文字典顺
序输出。
×4.编程序,从键盘输入n个学生的姓名、学号和住址,按照学号次序把它们串成一个单向链表。
1.
main(
)
{float
x,a[n+1],s=0.0;
int
i,n;printf(“请输入n和x的值”);scanf(“%d,%f”,n,x);printf(“请输入所有系数的值”);
for(i=0;i<=n;i++)scanf(“%f”,&a[i]);
for(i=0;i<=n;i++)
s=s+a[i]*pow(x,i);printf(“s=%f”,s”);}
2.
#include
“stdio.h”
main
(
)
{int
i;char
ch,name[80];
FILE
*fp;
i=0;
printf(“please
input
the
filename:”);
scanf(“%s”,name);
if((fp=fopen(name,”r+”))==NULL)
{
printf(“cannot
open
the
file”);
exit(0);}
ch=fgetc(fp);
i++;
if((ch>=’a’)&&(ch<=’z’))
ch=ch-32;
fputc(ch,fp);
printf(“字符总数为%”,i);
fclose(fp);
}
3.
#include
"stdio.h"
#include
"string.h"
#define
n
8
void
main(
)
{char
*p,*s[n],t[21];
int
i,j;
for(i=0;i<n;i++)
{scanf("%s",t);
s[i]=(char
*)malloc(strlen(t)+1);
strcpy(s[i],t);
}
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(strcmp(s[i],s[j])>0)
{p=s[i];s[i]=s[j];s[j]=p;}
for(i=0;i<n;i++)
printf("%s\n",s[i]);
}
输入
basic
good
well
c
pascal
morning
hlr
cpp
输出:
basic
c
cpp
good
hlr
morning
pascal
well

㈥ 15道C语言的选择题,请各位帮忙阿。

.设有char str[10], 下列语句正确的是( D )。
(A)printf(“%s”,&str); (B) printf(“%c”,str);
(C) printf(“%s”,str[0]); (D) printf(“%s”,str);
2.下面程序的输出结果是( )。
int fun(int x, int y)
{ int m=3;
return(x*y-m);
}
main()
{int a=7,b=5;
printf(“%d\n”,fun(a,b));
}
(A) 28 (B) 32 (C)35 (D) 12
3.若有说明:int a[3][4]; 则对a 数组元素的正确引用是( C )。
(A)a[2][4] (B) a[1,3] (C) a[1+1][0] (D) a(2) (1)
4. 若已知a=10,b=20,则表达式!a<b的值为( C )。
(A)10 (B)20 (C)1 (D)0
5.程序段如下:
int k=1;
while(!k= =0)
{ k=k+1;
printf(“%d\n”,k); }
则以下说法中正确的是( )。
(A)while循环执行2次 (B)循环是无限循环
(C)循环体语句一次也不执行 (D)循环体语句执行一次
6.若j已定义为int型,则以下程序段中循环体的执行结果是( )。
for(j=1; j<=10; )
{printf(“%2d”, j); j=j+2;}
(A) 1 2 3 4 5 (B) 1 3 5 7 9 (C) 2 4 6 8 10 (D)3 4 5 6 7
7.下面程序的运行结果是( )。
main()
{ int a[5], i;
for(i=0;i<5;i++)
{ a[i]= 3*(i>2) ;
printf(“%2d”, a[i]);
}
}
(A) 0 0 0 0 0 (B) 1 0 1 0 1 (C) 0 0 0 1 3 (D) 0 0 0 3 3
8.假设array是一个有10个元素的整型数组,则下列写法中正确的是( )。
(A)array[0]=10 (B) array=0 (C) array[10]=0 (D) array[-1]=0
9. 已知: int a=4,b=5; 则执行表达式c=a=a>b后变量的值为( )
(A) 0 (B ). 1 (C) . 4 (D) . 5
10.若说明:int a[][3]={0,1,2,3,4,5,6,7,8,9};则数组第一下标(行数)的大小为( )
(A) . 2 (B) . 3 (C ). 4 (D) . 不确定的值
11. 为了从键盘上输入字符串“HOW ARE YOU?”,可以直接使用函数( )。
(A) .scanf (B ). gets
(C) .getchar (D) . 都不能直接使用
12. 设有int x=5, y=6 ,z=7; 则执行程序段 if(x>y)z=x; x=y; y=z后,x, y, z的值分别为( ).
(A)5,6,7 (B)6,7,8 (C)7,7,8 (D)6,7,7
13. 下列选项中,与k=n++等价的表达式是( )
(A)k=++n (B)n=n+1, k=n (C)k=n, n=n+1 (D)k+=n+1
14.合法的数组定义是:( )
(A )char a={‘H’,’e’,’I’,’l’,’o’};
(B )char a[5]={“h”,”e”,”I”,”l”,”o”};
(C )char a[4]={‘H’,’e’,’I’,’l’,’o’};
(D )char a[6]=”hello”;
15.sizeof(double)是( )
(A) 函数调用 (B ). double 型表达式
(C ). int 型表达式 (D) . 非法表达式
给:
DBCCB
BDAAC
BDCDA

其中所有程序运行结果题目都实际运行确认了

㈦ 谁知道哪有关于C语言的练习题

C 程序设计试题库C语言概述练习题

1.一个C程序的执行是从( )
A.本程序的main函数开始,到main函数结束
B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
C.本程序的main函数开始,到本程序文件的最后一个函数结束
D.本程序文件的第一个函数开始,到本程序main函数结束

2.以下叙述正确的是:( )
A.在C程序中,main函数必须位于程序的最前面
B.程序的每行中只能写一条语句
C.C语言本身没有输入输出语句
D.在对一个C程序进行编译的过程中,可发现注释中的拼写错误

3.以下叙述不正确的是:( )
A.一个C源程序可由一个或多个函数组成
B.一个C源程序必须包含一个main函数
C.C程序的基本组成单位是函数
D.在C程序中,注释说明只能位于一条语句的后面

4.C语言规定:在一个源程序中,main的位置( )
A.必须在最开始
B.必须在系统调用的库函数后面
C.可以任意
D.必须在最后

5.一个C语言程序是由( )
A.一个主程序和若干子程序组成
B.函数组成
C.若干过程组成
D.若干子程序组成

6.C源程序的基本单位是____________

7.一个C源程序中至少包括一个____________

8.在一个C源程序中,注释部分两侧的分界符分别为____________ 和____________

9.在C语言中,输入操作是由库函数____________ 完成的,输出操作是由库函数____________ 完成的

c语言模拟练习题

一、 判断题(2×8=16分)
1、Printf()函数总是从新行的起始位置开始打印。 ( )
2、所有的变量在使用前都必须予以申明。( )
3、在申明变量时必须给出变量的类型。( )
4、C语言认为变量number和NuMbEr是相同的。( )
5、打印三行输出的C语言程序必须用三条printf语句。( )
6、求余运算符%只能用于两个整数操作数。( )
7、switch选择结构中必须有default子句。( )
8、如果x>y或a<b为真,那么表达式(x>y&&a<b)为真。( )
二、 选择题(3×16=48分)
1、下面实现换行功能的格式符为 。( )
A. \t B. \n C. \a D. \k
2. C语言程序由什么组成?(单选)
A. 子程序 B. 主程序和子程序 C. 函数 D. 过程
3. 下面哪个表达式的值为4.
A. 11/3 B. 11.0/3
C. (float)11/3 D. (int)(11.0/3+0.5)
4. 该源程序执行后,屏幕上显示什么?
void main()
{
int a;
float b;
a=4;
b=9.5;
printf("a=%d,b=%4.2f\n",a,b);
}

A. a=%d,b=%f\n B. a=%d,b=%f
C. a=4,b=9.50 D. a=4,b=9.5
5. 若有以下说明语句:
char s='\\\092';
则下面哪一项是正确的.
A. 使s的值包含2个字符 B. 说明语句不合法
C. 使s的值包含6个字符 D. 使s的值包含4个字符
6.若k,g均为int型变量,则以下语句的输出为哪一项?
int k,g;
k=017;
g=111;
printf("%d,",k);
printf("%x\n",g);

A. 15,6f B. f,6f C. f,111 D. 15,111

7. 在C语言的if语句中,用作判断的表达式为___。
A. 关系表达式 B. 逻辑表达式
C. 算术表达式 D. 任意表达式

8. 请问:下面这个程序段的输出是什么?
int a,b,c;
a=7;b=8;c=9;
if(a>b)
a=b,b=c;c=a;
printf("a=%d b=%d c=%d\n",a,b,c);

A. a=7 b=8 c=7 B. a=7 b=9 c=7
C. a=8 b=9 c=7 D. a=8 b=9 c=8

9. 下面这个程序的输出是什么?
#include <stdio.h>
main()
{
int y=10;
while(y--);
printf("y=%d\n",y);
}

A. y=0 B. while构成死循环 C. y=1 D. y=-1

10. 若有以下说明和语句,则输出结果是___。
char str[]="\"c:\\abc.dat\"";
printf("%s",str);

A. 字符串中有非法字符 B. \"c:\\abc.dat\"
C. "c:\abc.dat" D. "c:\\abc.dat"

11. 如果要把常量327存入变量a中,a不能定义成哪些类型?
A. int B. char C. long D. float
12. C语言中,预处理总是以 符号开头。 ( )
A. ¥ B.# C. @ D. ◇
13. C语言中,double类型的数据占 个字节的空间。( )
A. 1 B.2 C. 4 D. 8
14. 下面语句执行完后,b的值为 。 ( )
int a=b=10;
b=10+(a++);
A. 10 B.19 C. 20 D. 21

15. 这段程序中的常量有: (多选) ( )
#define PI 3.14
void main()
{
int sum;
sum = 10 + 15;
printf("sum=%d\n",sum);
printf("result is 25\n");
}
这段程序中常量有:
A. 10 B. sum C. 15
D. 25 E. main F. PI

16. 指出下面错误的表达式:(多选) ( )
A. a+b=5 B. 56=a11 C. i=i++
D. 5.6+6.2%3.1 E. 12 F. a=5,b=6,c=7

三、 填空题(3×8=24分)
1、C语言程序都是从 函数开始执行。
2、函数体用 开始,用 结束。
3、C语言的语句都以 结束。
4、执行循环结构中的 语句能够立即执行下一次循环。
5、执行循环结构或switch结构中的 语句能够立即退出该结构。
6、输出字符串的格式化符为 。
7、C语言中数组名表示数组的 。

㈧ 本题要求编写程序,计算序列 2/1+3/2+5/3+8/5+... 的前N项之和。

首先需要明确,常常看到int取值范围为-32768~32767,实际上int的取值范围依赖于计算机系统,在16位机器中,int占16位,取值范围为前面所说的-32768~32767(-2^16~2^16-1)。

而在32位和64位机器中,int占32位,取值范围为-2147483648~2147483647(-2^32~2^32-1)。

本题中当N为44时,分子的取值将达到2971215073,超出int取值范围(2147483647),出现异常,导致计算结果出错,也就是PTA中判断的较大N出错。

N<44时一切正常,当N=44时,分子值因为超出int取值范围出现错误。因此本题中,fm,fz,t应为double类型。

(8)浙大c语言题库扩展阅读:

在计算机系统中,一条机器指令规定了计算机系统的一个特定动作。一个系列的计算机在硬件设计制造时就用了若干指令规定了该系列计算机能够进行的基本操作,这些指令一起构成了该系列计算机的指令系统。

在计算机应用的初期,程序员使用机器的指令系统来编写计算机应用程序,这种程序称为机器语言程序。

使用机器语言编写的程序,由于每条指令都对应计算机一个特定的基本动作,所以程序占用内存少、执行效率高。缺点也很明显,如:编程工作量大,容易出错;依赖具体的计算机体系,因而程序的通用性、移植性都很差。

㈨ 急求C语言复习题库加答案

一 选择题(7分,每小题0.5分)
1.C语言源程序的基本单位是( B)。
A 过程 B 函数 C 子程序 D 标识符
2.下列程序的输出结果是(C)。
main( )
{ int a=7,b=5;
printf("%d\n",b=b/a);
}
A 5 B 1 C 0 D不确定值
3.假设变量a,b均为整型,表达式(a=5,b=2,a>b?a++:b++,a+b)的值是(B)。
A 7 B 8 C 9 D 2
4.设a为int型变量,执行下列赋值语句后,a的取值分别是( B )。
a=125.534; a=(int)125.521%4; a=5<<2;
A 125,31,1 B 125,1,20 C 125,31,20 D 125.534,2,20
5.设有如下程序段,下面描述中正确的是 ( C )。
int k=10; while(k=0) k=k-1;
A 循环执行一次 B循环是无限循环 C循环体语句一次也不执行 D循环体语句执行一次
6.以下程序的输出结果为(A)。
int i;
void prt( )
{ for(i=5;i<8;i++) printf("%c",'*');
printf("\t");
}
main( )
{ for(i=5;i<=8;i++) prt( );
}
A *** B *** *** *** *** C *** *** D * * *
7.在C语言程序中,以下说法正确的是(B)。
A函数的定义可以嵌套,但函数的调用不可以嵌套
B函数的定义不可以嵌套,但函数的调用可以嵌套
C函数的定义和函数的调用都不可以嵌套
D函数的定义和函数的调用都可以嵌套
8.以下函数调用语句中含有(A)个实参。
func((e1,e2),(e3,e4,e5));
A 2 B 3 C 5 D 语法错误
9.以下程序的输出结果为(A)。
#define ADD(x) x*x
main( )
{ int a=4,b=6,c=7,d=ADD(a+b)*c;
printf("d=%d",d);
}
A d=70 B d=80 C d=140 D d=700
10.已知职工记录描述如下,在Turbo C中,系统为变量w分配(C )字节的空间。
struct worker
{ int no;
char name[20];
char sex;
union
{ int day; int month; int year;}birth;
} w;
A 29 B 20 C 25 D 6
11.设有以下定义,值为5的枚举常量是(A )。
enum week{sun,mon=4,tue,wed,thu,fri,sat} w;
A tue B sat C fri D thu
12.下面选项中正确的赋值语句是(设 char a[5],*p=a;)(A)。
A p="abcd"; B a="abcd"; C *p="abcd"; D *a="abcd";
13.设有以下程序段,则值为6的表达式是(B )。
struct st { int n; struct st *next;};
static struct st a[3]={5,&a[1],7,&a[2],9,0 },*p;
p=&a[0];
A p++->n B ++p->n C p->n++ D (*p).n++
14.C语言中的文件类型只有( D )。
A 索引文件和文本文件两种 B 文本文件一种
C 二进制文件一种 D ASCII码文件和二进制文件两种
二 判断对错,对的划“√”,错的划“×”(5分,每小题0.5分)
1.在Turbo C中,整型数据在内存中占2个字节。(× )
2.int i=20;switch(i/10){case 2:printf("A");case 1:printf("B");}的输出结果为A。(× )
3.break语句用在循环体中,可结束本层循环,continue语句用在循环体中,可结束本次循环。( √ )
4.函数的递归调用不过是一个函数直接或间接地调用它自身。(√)
5.函数strlen("ASDFG\n")的值是7。(× )
6.通过return语句,函数可以带回一个或一个以上的返回值。(×)
7.结构体类型只有一种。 ( × )
8.char *p="girl";的含义是定义字符型指针变量p,p的值是字符串"girl"。(× )
9.若有定义:char *p(char a[10]);则p是函数名。(√ )
10.用fopen("file","r+");打开的文件"file"可以进行修改。 ( √ )
答案
一 选择题(7分,每小题0.5分)
1. B 2. C 3. B 4. B 5. C
6. A 7. B 8. A 9. A 10. C
11. A 12. A 13. B 14. D
二 判断对错,对的划“√”,错的划“×”(5分,每小题0.5分)
1.× 2.× 3.√ 4.√ 5.×
6.× 7.× 8.× 9.√ 10.√
1选择题(24分,每小题2分)
1.已知函数fread的调用形式为fread(buffer,size,count,fp),其中buffer代表的是(B)。
A 存放读入数据项的存储区 B 存放读入数据的地址或指向此地址的指针
C 一个指向所读文件的文件指针 D 一个整形变量,代表要读入的数据项总数
2.以下程序的输出结果为( C)。10,10
main( )
{ int i=010,j=10;
printf("%d,%d\n",i++,j--); }
A 11,9 B 9,10 C 8,10 D 9,9
3.设a为int型变量,执行下列赋值语句后,a的取值分别是( B )。a=125.534;a=20.0/3;a=(int)125.521%4;a=5<<2;
A 125,6,31,1 B 125,6,1,20 C 125,6.666666,31,20 D 125.534,6.666666,2,20
4.设i和k都是int类型,则for循环语句(D )。
for(i=0,k=-1;k=1;i++,k++) printf("****\n");
A 循环结束的条件不合法 B 循环体一次也不执行 C 循环体只执行一次 D 是无限循环
5.以下程序的输出结果为(`D )。
main( )
{ char c;
int i;
for(i=65;i<68;i++)
{ c=i+32;
switch(c)
{ case 'a':case 'b':case 'c':printf("%c,",c);break; default:printf("end");}

}
}
A a,b,c,end B a,a,a,end C a,a,a, D a,b,c,
6.函数调用语句:fseek(fp,-10L,2);的含义是(A )。
A 将文件位置指针从文件末尾处向文件头的方向移动10个字节
B 将文件位置指针从当前位置向文件头的方向移动10个字节
C 将文件位置指针从当前位置向文件末尾方向移动10个字节
D 将文件位置指针移到距离文件头10个字节处
7.以下程序的输出结果为(D )。
main( )
{ char s1[40]="country",s2[20]="side";
int i=0,j=0;
while(s1[i]!='\0') i++;
while(s2[j]!='\0') s1[i++]=s2[j++];
s1[i]=0;
printf("%s\n",s1);
}
A side B country C sidetry D countryside
8.下列说法不正确的是(A)。
A 主函数main中定义的变量在整个文件或程序中有效
B 不同函数中,可以使用相同名字的变量
C 形式参数是局部变量
D 在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句中有效
9.在下列程序段中,枚举变量 c1的值是( D )。
enum color { red,yellow,blue=4,green,white}c1; c1=yellow; c1=white;
A 1 B 3 C 5 D 6
10.设有说明 int (*ptr)();其中标识符ptr是(B)。
A 是一个指向整形变量的指针 B 是一个指针,它指向一个函数值是int的函数
C 是一个函数名 D定义不合法
11.定义由n个指向整形数据的指针组成的数组p,其正确的方式为( C )。
A int p; B int (*p)[n]; C int *p[n]; D int (*p)( );
12.具有相同类型的指针类型变量p与数组a,不能进行的操作是( B)。
A p=a; B *p=a[0]; C p=&a[0]; D p=&a;
二 判断对错,对的划“√”,错的划“×”(20分,每小题2分)
1.参加位运算的数据可以是任何类型的数据。(× )
2.若有定义和语句:int a;char c;float f;scanf("%d,%c,%f",&a,&c,&f);若通过键盘输入:10,A,12.5,则a=10,c=‘A’,f=12.5。(√)12.500000
3.C语言把文件看作是一个字符(字节)的序列。(√ )
4.若有宏定义:#define S(a,b) t=a;a=b;b=t由于变量t没定义,所以此宏定义是错误的。(× )
5.在Turbo C中,下面的定义和语句是合法的:file *fp;fp=fopen("a.txt","r");( × )
6.若有定义:char s[ ]="china";则Turbo C系统为数组s开辟6个字节的内存单元。(√ )
7.若有定义和语句:int a[3][3]={{3,5},{8,9},{12,35}},i,sum=0;for(i=0;i<3;i++) sum+=a[i][2-i];则sum=21。(√ )
8.若有定义和语句:struct student { int num; char name[10]; float score;} s[5]={{1,"lili",98.5},{9,"xiaohua",66}},*p=s;printf("%d",*p++);输出结果是1。(× )
9.在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型的变量。(√ )
10.在Turbo C中,此定义和语句是合法的:enum aa{ a=5,b,c}bb;bb=(enum aa)5;( √ )
答案
一 选择题(24分,每小题2分)
1.( B ) 2.( C ) 3.( B ) 4.( D ) 5.( D ) 6.( A )
7.( D ) 8.( A ) 9.( D ) 10.( B ) 11.( C ) 12.( D )
二 判断对错,对的划“√”,错的划“×”(20分,每小题2分)
1.( × ) 2.( √ ) 3.( √ ) 4.( × ) 5.( × )
6.( √ ) 7.( √ ) 8.( × ) 9.( √ ) 10.( √ )

㈩ C语言,求网友发可以刷C语言编程题的网址,不甚感激,OJ题!

在线编程网站:https://oj.leetcode.com/problemset/algorithms/
题库不断更新,注册以后能记录自己的答题内容,题的类型偏向实际应用,很多找IT方向工作的人都会在这刷题练习,效果很好。根据自己找工作的经验,有的公司招聘编程题与这上面的题目很类似,所以个人感觉这个网站练习编程很有效果~