第一篇:程序设计(C)第二次作业(第3-4章概念题)
O 程序设计(C)
O / ► 第二次作业(第3-4章概念题)
题目1 完成
满分1.00 Flag question 题干
对于int a, 表达式1 <= a <= 5 的值是()选择一项:
a.表达式语法有误 b.1 c.0 d.不定
题目2 完成
满分1.00 Flag question 题干
C 语言中,下面哪项是不合法的标识符?()选择一项:
a.Abc b.switch c._345 d.user 题目3 完成
满分1.00 Flag question 题干
已有定义int x[3][2],以下能正确引用数组元素的选项是()选择一项:
a.x[0][2] b.x[2][1] c.x[2][2] d.x[1][2] 题目4 完成
满分1.00 Flag question 题干
若w=1, x = 2, y=3, z = 4,则条件表达式w < x ? w: y < z ? y : z 的值是()选择一项:
a.1 b.2 c.4 d.3 题目5 完成
满分1.00 Flag question 题干
给定如下程序: #include
a.程序输出小写字母a
b.程序编译通过,但运行时出错 c.格式说明符不足,编译出错 d.程序输出大写字母A 题目6 完成
满分1.00 Flag question 题干
以下能正确定义一维数组的选项是()选择一项:
a.int a[5] = {1, 2, 3, 4, 5};b.int a*5+ = “0123”;c.char a = ,‘A’,‘B’,‘D’-d.char a[] = {0, 1, 2, 3} 题目7 完成
满分1.00 Flag question 题干
若变量x、y 已正确定义并赋值,以下符合C 语言语法规则的语句是()选择一项:
a.++x, y = x--;b.x = x + 10 = x + y;c.x + 1 = y;d.double(x)/10;题目8 完成
满分1.00 Flag question 题干
下列程序的输出结果为()void main(){ int x, y, z;x = y = 1;z = x++, y++, ++y;printf(“%d, %d, %dn”, x, y, z);} 选择一项:
a.2, 3, 1 b.2, 2, 1 c.2, 3, 3 d.2, 3, 2 题目9 完成
满分1.00 Flag question 题干
x, y, z 被定义为int 型变量,若从键盘为其输入数据,则正确的输入语句是()选择一项:
a.read(“%d%d%d”, &x, &y, &z);b.scanf(“%d%d%d”, x, y, z);c.input x, y, z
d.scanf(“%d%d%d”, &x, &y, &z);题目10 完成
满分1.00 Flag question 题干
给定如下程序段,请选择描述正确的说法()int i = 9;
while(i = 0)i--;选择一项:
a.while 循环执行9 次 b.循环体语句一次也不执行 c.循环体语句执行一次 d.循环是无限循环
题目11 完成 满分1.00 Flag question 题干
逻辑运算符两侧运算对象的数据类型()选择一项:
a.只能是0 或非0 正数 b.可以是整型或字符型数据 c.可以是任何类型的数据 d.只能是0 或1 题目12 完成
满分1.00 Flag question 题干
下列程序的输出结果是()#include
{ int a = 2, b = 3, c = 0, d;d =!a &&!b ||!c;printf(“%dn”, d);} 选择一项:
a.编译出错 b.0 c.-1 d.1 题目13 完成
满分1.00 Flag question 题干
以下说法中正确的是()选择一项:
a.C 语言比其他语言高级
b.C 语言出现得最晚,具有其他语言的一切优点
c.C 语言以接近英语国家的自然语言和数学语言作为语言的表达形式 d.C 语言不用编译就能被计算机执行
题目14 完成
满分1.00 Flag question 题干
数值029 是一个()选择一项:
a.非法数 b.十进制 c.八进制数 d.十六进制
题目15 完成
满分1.00 Flag question 题干
在C 语言中,复合语句要用一对()括起来。选择一项:
a.大括号 b.方括号 c.尖括号 d.圆括号
题目16 完成
满分1.00 Flag question 题干
设n 为整型变量,则for(n = 10;n >= 0;n--)循环的次数为()选择一项:
a.10 b.12 c.11 d.9 题目17 完成
满分1.00 Flag question 题干
对表达式for(表达式1;;表达式3)可以理解为()选择一项:
a.for(表达式1;表达式1;表达式3)b.for(表达式1;1;表达式3)c.for(表达式1;表达式3;表达式3)d.for(表达式1;0;表达式3)题目18 完成
满分1.00 Flag question 题干
执行下列语句段后x 的值为()int a = 14, b = 15, x;char c = ‘A’;
x =(a && b)&&(c < 'a');选择一项:
a.TRUE b.1 c.0 d.FALSE 题目19 完成
满分1.00 Flag question 题干
有以下语句: int x;char c[10];
则正确的输入语句是()选择一项:
a.scanf(“%d%s”, &x, c);b.scanf(“%d%s”, &x, &c);c.scanf(“%d%s”, x, c);d.scanf(“%d%s”, x, &c);题目20 完成
满分1.00 Flag question 题干
下列程序的输出结果是()#include
{ int a = 55, b = 50, c = 60, d;d = a > 20 ? b : c;switch(d)
{ case 40:printf(“%d,”, a);case 50 : printf(“%d,”, b);case 60 : printf(“%d,”, c);default : printf(“$n”);} } 选择一项:
a.50, 60 b.50, $ c.50, 60, $ d.60, $
第二篇:c程序设计作业
1、分析下面程序: # include
c1=97;
c2=98;
printf(“c1=%c,c2=%cn”c1,c2);
printf(“c1=%d,c2=%dn”,c1,c2);
return 0;}(1)运行时会输出什么信息?为什么?(2)如果将程序第4,5行改为
c1=197;c2=198;运行时会输出什么信息?为什么?(3)如果将程序第3行改为
int c1,c2;运行时会输出什么信息?为什么?
答:(1)程序运行不了,因为程序存在错误。正确的程序为:
#include
char c1,c2;
c1=97;
c2=98;
printf(“c1=%c,c2=%cn”,c1,c2);
printf(“c1=%d,c2=%dn”,c1,c2);
return 0;}
(2)如果将程序第4,5行改为
c1=197;c2=198;
运行时会输出:
(3)如果将程序第3行改为
int c1,c2;运行时会输出:
因为int表示整型,%c是输出字符,a的ASCLL代码是97,b的是98,所以输出c1=a,c2=b.%d是表示输出十进制整型,所以输出c1=97,c2=98
2、用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’。问在键盘上如何输入?
#include
int a,b;
float x,y;
char c1,c2;
scanf(“a=%db=%d”,&a,&b);
scanf(“%f%e”,&a,&y);
scanf(“%c%c”,&c1,&c2);
return 0;} 答:输入如图:
输出如图:
第三篇:2014年9月份考试C语言程序设计第二次作业
2014年9月份考试C语言程序设计第二次作业
一、单项选择题(本大题共100分,共 40 小题,每小题 2.5 分)
1.下面程序
fun3(int x)
{
static int a=3;
a +=x;return(a);
}
main()
{
int k=2, m=1, n;
n=fun3(k);
m=fun3(m);
printf(“%dn”,n);
}的输出是().A.3 B.4 C.5 D.9
2.下面的程序
main()
{
int x=3;
do
{
printf(“%dn”,x-=2);
}
while(!(--x));
}
().A.输出的是1 B.输出的是1和-2 C.输出的是3和0 D.是死循环
3.以下叙述中正确的是().A.预处理命令行必须位于源文件的开头 B.在源文件的一行上可以有多条预处理命令C.宏名必须用大写字母表示 D.宏替换不占用程序的运行时间
4.以下叙述中正确的是().A.局部变量说明为static存储类,其生存期将得到延长 B.全局变量说明为static存储类,其作用域将被扩大 C.任何存储类的变量在未赋初值时,其值都是不确定的 D.形参可以使用的存储类说明符与局部变量完全相同
5.下列语句中,符合C语言语法的赋值语句是().A.a=7+b+c=a+7 B.a=7+b++=a+7 C.a=7+b,b++,a+7 D.a=7+b,c=a+7
6.下面程序
main()
{
int y=9;
for(;y>0;y--)
{/ 6
if(y%3==0)
{
printf(“%d”,--y);
continue;
}
}
} 的输出是().A.741
B.852
C.963
D.875421
7.下面程序
main()
{
int x=32;
printf(“%dn”,x=x<<1);
}的输出是().A.100 B.160 C.120 D.6
48.以下程序的输出结果是().#include main(){ printf(“%dn”,NULL);}
A.不确定的(因变量无定义)
B.0 C.-1 D.19.若k是int型变量,且有下面的程序片段
k=-3;
if(k<=0)printf(“####”)else printf(“&&&&”);
上面程序片段的输出结果是().A.#### B.&&&& C.####&&&& D.有语法错误,无输出结果
10.下面的程序
main()
{
int x=3,y=0,z=0;
if(x=y+z)printf(“* * * *”);
else printf(“####”);
}
().A.有语法错误不能通过编译 B.输出* * * *
C.可以通过编译, 但是不能通过连接, 因而不能运行 D.输出####
11.+以下定义语句中正确的是().A.char a=''''A''''b=''''B''''B.float a=b=10.0C.int a=10,*b=&a
D.float *a,b=&a
12.设有如下一段程序
int *var,ab;
ab=100;
var=&ab;
ab=*var+10;
执行下面的程序段后,ab的值为().A.120 B.110 C.100 D.90
13.若x和y都是int型变量,x=100、y=200,且有下面的程序片段 printf(“%d”,(x,y));上面程序片段的输出结果是().A.200 B.100 C.100 200 D.输入格式符不够,输出不确定的值
14.若有以下说明和定义
union dt
{
int a;
char b;
double c;
}
data;
以下叙述中错误的是().A.data的每个成员起始地址都相同 B.变量data所占的内存字节数与成员c所占字节数相等
C.程序段:data.a=5;printf(“%fn”,data.c);输出结果为5.000000D.data可以作为函数的实参
15.设有如下枚举类型定义
enum language
{
Basic=3,Assembly=6,Ada=100,COBOL,Fortran
}
枚举量Fortran的值为().A.4 B.7 C.102 D.10
316.以下叙述中正确的是().A.C语言的源程序不必通过编译就可以直接运行 B.C语言中的每条可执行语句最终都将被转换成二进制的机器指令 C.C语言程序经编译形成的二进制代码可以直接运行D.C语言中的函数不可以单独进行编译
17.在一个C程序中()
A.main函数必须出现在所有函数之前 B.main函数可以在任何地方出现
C.main函数必须出现在所有函数之后 D.main函数必须出现在固定位置
18.以下叙述中错误的是().A.对于double类型数组,不可以直接用数组名对数组进行整体输入或输出
B.数组名代表的是数组所占存储区的首地址,其值不可改变
C.当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息
D.可以通过赋初值的方式确定数组元素的个数
19.有以下程序
main()
{
char s[]=“Yesn/No”,*ps=s;puts(ps+4);
*(ps+4)=0;puts(s);
}
程序运行后的输出结果是().A.n/NO Yes /NO B./NO YesC./NO Yes /NO D./NO Yes
20.以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是().A.char s[10]=“abcdefg” B.char t[]=“abcdefg”,*s=t
C.char s[10];s=“abcdefg” D.char s[10];strcpy(s,“abcdefg”)
21.C语言中的标示符只能由字母、数字和下划线三种字符组成,且第一个字符()
A.必须是字母 B.必须是下划线 C.必须是字母或下划线
D.可以是字母或数字或下划线中的任意一种
22.以下程序段给数组所有的元素输入数据,请选择正确答案填入:
#include main()
{
int a[10],i=0;
while(i<10)scanf(“%d”,());
}
A.a+(i++)B.&a[i+1]C.a+ID.&a[++i]
23.C语言中while和do-while循环的主要区别是()
A.do-while的循环体至少无条件执行一次 B.while的循环控制条件比do-while的循环控制条件严格 C.do-while 允许从外部转到循环体内D.do-while 的循环体不能是复合语句
24.下面四个选项当中,均是关键字的是()
A.auto,enum,includeB.switch,typedef,continue
C.signed,union,scanfD.if,struct,type
25.设ch是char型变量,其值为A,且有下面的表达式 ch=(ch>=''A''&&ch<=''Z'')?(ch+32):ch 上面表达式的值是().A.B.aC.ZD.z
26.以下叙述中正确的是().A.用C程序实现的算法必须要有输入和输出操作 B.用C程序实现的算法可以没有输出但必须要输入C.用C程序实现的算法可以没有输入但必须要有输出 D.用C程序实现的算法可以既没有输入也没有输出
27.有以下程序:
main()
{
int s=0,a=1,n;
scanf(“%d”,&n);
do {s+=1;a=a-2;
}
while(a!=n);
printf(“%dn”,s);
}
若要使程序的输出值为2,则应该从键盘给n输入的值是().A.-1B.-3C.-5D.0
28.有以下程序
main()
{
int c=35;
printf(“%dn”,c&c);
}
程序运行后的输出结果是().A.0B.70C.35D.129.有以下程序
main()
{
int a[]={1,2,3,4,5,6,7,8,9,0},*p;
for(p=a;p<=“" 程序运行后的输出结果是(=”“ }=”“ printf(?%d,?,*p);=”“>
A.1,2,3,4,5,6,7,8,9,0
B.2,3,4,5,6,7,8,9,10,1
C.0,1,2,3,4,5,6,7,8,9
D.1,1,1,1,1,1,1,1,1,1
30.正确的自定义标识符是()
A.a=2B.a+bC.nameD.default
31.有以下程序:
#define f(x)x*x main()
{
int i;
i=f(4+4)/f(2+2);
printf(”%dn“,i);
}
执行后输出的结果是().A.28B.22C.16D.432.下面函数
int fun1(char*x)
{
char *y=x;
while(*y++);
return(y-x-1);
}的功能是().A.求字符串的长度B.比较两个字符串的大小C.将字符串x复制到字符串y
D.将字符串x连接到字符串y后面
33.以下程序运行后的输出结果是()
fun(int a, int b)
{
if(a>b)return a;
else return b;
}
main()
{
int x=3, y=8, z=6, r;
r=fun(fun(x,y), 2*z);
printf(”%dn“, r);
}
A.3B.6C.8D.1
234.已定义c为字符型变量,则下列语句中正确的是().A.c=''97B.c=”97“;C.c=97;D.c=”a“;''
35.若变量已正确定义并赋值,下面符合C语言的表达式是().A.a:=b+1B.a=b=c+2C.int 18.5%3D.a=a+7=c+b
36.s1和s2已正确定义并分别指向两个字符串.若要求:当s1所指串大于s2所指串时,执行语句S;,则以下选项中正确的是().A.if(s1>s2)SB.if(strcmp(s1,s2))SC.if(strcmp(s2,s1)>0)S
D.if(strcmp(s1,s2)>0)S
37.以下选项中属于C语言的数据类型是()
A.复数型B.逻辑型C.集合型D.双精度型
38.C语言中,long类型的数据占字节数为()A.1 B.2 C.4 D.8
39.有以下程序
main()
{
int a=1,b;
for(b=1;b<=10;b++)
{
if(a>=8)break;
if(a%2==1){a+=5;continue;
}
a-=3;
}
printf(”%dn",b);
}
程序运行后的输出结果是().A.3B.4C.5D.6
40.编辑程序的功能是()
A.建立并修改程序B.将C源程序编译成目标程序C.调试程序
D.命令计算机执行指定的操作
答案:
一、单项选择题(100分,共 40 题,每小题 2.5 分)
1.C 2.B 3.D 4.A 5.D 6.B 7.D 8.B 9.D 10.D 11.C 12.B 13.A 14.C 15.C 16.B
17.B 18.C 19.B 20.C 21.C 22.A 23.A 24.B 25.B 26.C 27.B 28.C 29.A 30.C 31.A 32.A 33.D 34.C 35.B 36.D 37.D 38.C 39.B 40.A
第四篇:C语言程序设计--大作业
C语言程序设计大作业
编写程序,实现单链表的插入、删除、输出、查找、统计以及销毁功能。
单链表的每个结点存储一名学生的信息,包括:学号、姓名、性别、年龄、三门课程(高数、英语、C语言)的成绩、三门功课的平均分。
结构体类型声明如下: typedef struct student {
char sno[8];
char name[20];
char sex;
int age;double score[3];double avg;
struct student *next;} STUDENT, *PSTUDENT;
要求:
⑴一律使用 STUDENT 声明学生结构体的变量,一律使用 PSTUDENT 声明指向学生结构体的指针变量
⑵程序运行过程中要有菜单提示,菜单如下:
*************************************************************** *
1.Insert a student
* *
2.Delete a student
* *
3.Display the link list
* *
4.Display excellent students
* *
5.Search a student by the name
* *
6.Display the average score of three courses * *
0.Exit the program
* ***************************************************************
“Insert a student”:插入一个学生记录,要求按平均分从高到低插入 “Delete a student”:删除指定学号的学生 “Display the link list”:输出单链表中所有学生的信息 “Display excellent students”:输出链表中三门功课平均成绩高于85分(含85分)的学生信息 “Search a student by the name”:根据输入的姓名,输出链表中相应学生的信息 “Display the average score of three courses”:输出链表中所有学生的高数平均分、英语平均分以及C语言平均分 “Exit the program”:销毁单链表,结束程序运行
第五篇:程序设计(C)第三次作业
题目1
给定下列程序,则运行结果为()#include
void main(){ int a, b, c;
fun(11, 5, &a);
fun(8, a, &b);
fun(a, b, &c);
printf(“%d, %d, %dn”, a, b, c);}
A.2, 6, 4
B.2,4,6
C.6,4,2
D.6, 2, 4
题目2
两个指针变量不能()
A.指向同一地址
B.相加
C.比较
D.相减
题目3
C 语句int *func();中,func 表示的是()
A.返回值为指针的函数名称
B.指向数组的指针
C.指向整型变量的指针
D.指向函数的指针
题目4
下列说法中不正确的是()
A.C 语言规定,不能在一个函数的内部再定义函数
B.函数的类型可以是整型、实型、字符型,但不能是指针类型
C.在没有声明函数返回值类型的情况下,默认函数返回值类型为int 型
D.函数可以没有形参,但函数名后的括号不能省略
题目5
阅读下列程序段,其执行结果为()#include
x += a++;
printf(“%d,”, x);}
void main(){ int a = 3, x = 1;
fun(a);
x += a++;
printf(“%dn”, x);}
A.8,5
B.8,4
C.8,3
D.8,2
题目6
下列说法中正确的是()
A.如果形参与实参的类型不一致,则以实参类型为准
B.return 后面的值不能为表达式
C.定义函数时,形参的类型说明可以放在函数体内
D.如果函数值类型与return 后的返回值类型不一致,则以函数值类型为准
题目7
下列说法中错误的是()
A.在一个函数的复合语句中定义的变量只在本函数范围内有效
B.在不同的函数中可以使用相同名字的变量
C.函数中的形参是局部变量
D.在一个函数内定义的变量只在本函数范围内有效 题目8
给定下列程序,则其运行结果为()#include
{ static int array[][4] = {{1,3,5,7},{9,11,13,15},{17,19,21,23}};
int(* p)[4], i, j, sum[3];
p = array;
for(i = 0;i < 3;i++)
{ sum[i] = 0;
for(j = 0;j < 4;j++)
sum[i] += *(*(p + i)+ j);
printf(“%d,”, sum[i]);
} }
A.80
B.164880
C.144
D.16, 48, 80
题目9
若已定义的函数有返回值,则以下关于该函数调用的叙述错误的是()A.函数调用可以作为一个函数的实参
B.函数调用可以作为独立语句存在C.函数调用可以出现在表达式中
D.函数调用可以作为左值而被赋值
题目10
下列程序的输出结果是()#include void main()
{ char a[] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', ' ' };
int i, j;
i = sizeof(a);
j = strlen(a);
printf(“%d, %dn”, i, j);}
A.9,8
B.9,9
C.1,8
D.8,9
题目11
已有定义char a[] = “xyz”, b[]={ 'x', 'y', 'z' } , 以下叙述正确的是()a.上述说法均不正确
b.数组a 的存储空间长度大于数组b 的存储空间长度
c.数组a 的存储空间长度小于数组b 的存储空间长度
d.数组a 和b 的存储空间长度相同
题目12
以下不能正确定义二维数组的选项是()
A.int a[2][] = {{1, 2}, {3, 4}};
B.int a[][2] = {1, 2, 3, 4};
C.int a[2][2] = {{1}, {2}};
D.int a[2][2] = {{1}, 2, 3};
题目13 下列叙述中错误的是()a.可以通过赋初值的方式确定数组元素个数
b.在程序执行过程中,当数组元素下标超出定义的下标范围时,系统将给出“下标”越界的错误提示
c.数组名代表数组所占存储区的首地址,其值不可变
d.对于double 类型数组,不可直接用数组名对数组进行整体输入或输出
题目14
在C语言中,对变量的访问方式是()
A.不能直接访问,能间接访问
B.直接、间接均不能
C.能直接访问,不能间接访问
D.能直接访问,也能间接访问
题目15
C语言规定,若未对函数返回类型加以说明,则函数的隐含类型为()A.void
B.double
C.char
D.int 题目16
给定下列程序,假定从键盘输入数据1、2,则执行结果为()#include
p2 = p2 + * p1;}
void main(){ int a, b, *p1;
scanf(“%d, %d”, &a, &b);
p1 = &a;
swap(p1, b);
printf(“a = %d, b = %dn”, a, b);}
A.a = 3, b = 5
B.3, 2
C.a = 3, b = 2
D.3,5
题目17
阅读下列程序段,其执行结果为()#include void main()
{ int a = 4, b = 6, c = 7;
double d;
double fun(int, int, int);
printf(“d = %lfn”, fun(a, b, c));}
double fun(int a, int b, int c){ return a % b * c;}
A.27
B.28
C.28.000000
D.27.000000
题目18
一个变量的指针就是()
A.变量的名称
B.变量的地址
C.变量的类型
D.变量的值
题目19
以下能正确定义一维数组的选项是()
A.int num[];
B.int num[0..100];
C.int N = 100;int num[N];
D.#define N 100 int num[N];
题目20
C语句: int(* pa)[5];中,pa 表示的是一个()
A.指针数组的名称
B.指向整型变量的指针
C.指向包含5个整型元素的一维数组的指针
D.指向函数的指针