《C语言程序设计》
一、选择题:文章源自微观生活(93wg.com)微观生活-https://93wg.com/2599.html
1.下列不是C语言的特色的是文章源自微观生活(93wg.com)微观生活-https://93wg.com/2599.html
A.C语言简洁、紧凑 B.能够编制出功能繁杂的程序文章源自微观生活(93wg.com)微观生活-https://93wg.com/2599.html
C. C语言可以直接对硬件进行操作 D.C语言移植性好文章源自微观生活(93wg.com)微观生活-https://93wg.com/2599.html
2. 下列不正确的C语言标识符是。文章源自微观生活(93wg.com)微观生活-https://93wg.com/2599.html
A.ABC B.abc C.a_bc D.ab.c文章源自微观生活(93wg.com)微观生活-https://93wg.com/2599.html
3.一个c程序的执行是从.文章源自微观生活(93wg.com)微观生活-https://93wg.com/2599.html
A.main函数开始,直到main函数收场文章源自微观生活(93wg.com)微观生活-https://93wg.com/2599.html
B.第一个函数开始,直到最后一个函数收场文章源自微观生活(93wg.com)微观生活-https://93wg.com/2599.html
C.第一个语句开始,直到最后一个语句收场文章源自微观生活(93wg.com)微观生活-https://93wg.com/2599.html
D.main函数开始,直到最后一个函数收场
4.下列不正确的语句是。
A.P*=3; B.p/=q; C.p十=3; D.p&&=q
5.以下四组选项中,均不是C语言关键字的选项是.
A.define B.getc C.include D.while
if char sanf go
type printf case pow
6.下面四个选项中,均是合法整形常量的选项是.
A.160 B.-0xcdf C.-01 D.-0x48a
-0xffff 01a 986,012 2e5
011 0xe 0668 0x
7. 下面四个选项中,均是不合法浮点数的选项是.
A.160. B.123 C.-.18 D.-e3
0.12 2e4.2 123e4 0.234
e3 .e5 0.0 1e3
8. 若有代数式3ae/bc,则不正确的C语言表达式是
A.a/b/c*e*3 B.3*a*e/b/c
C.3*a*e/b*c D.a*e/c/b*3
9. 若下列变量均是整形,且num=sum=7;则计算表达式sUM=num++,sUM++,++num后sum的值为.
A.7 B.8 C.9 D.10
10.若有定义:int a=7; float x=205 ,y=4.7; 则表达式x+a%3*%2/4的值是。
A.2.500000 B.2.750000 C.3.500000 D.0.000000
11. sizeof是。
A.一个双精度型表达式 B. 一个整型表达式
C.一种函数调用 D. 一个不合法的表达式
12. 设int n=3;则n十十的结果是。
A.2 B.3 C.4 D.5
13. 设有说明: char w; int x; float y; double z; 则表达式w*x+z-y值的数据类型为。
A.float B.char C.int D.double.
14. 若x,y均定义为int型,z定义为double型,下列不合法的scanf函数调用语句是.
A. scanf;
B. scanf;
C. scanf;
D. scanf;
15. 下列说法正确的是.
A. 输入项可以为一个实型常量,如scanf;
B. 只有格式节制,没有输入项,也能进行正确输入,如scanf;
C. 当输入一个实型数据时,格式节制部份应规定小数点后的位数,如scanf;
D. 当输入数据时,必需指明变量的地址,如scanf;
16. 下列程序的执行结果是。
include<stdio.h>
main
{
char c1=&39;,C2=&39;;
printf;
A.A,Y B.65,65 C.65,90 D.65,89
18. 为了不嵌套的if-else语句的二义性,c语言规定else老是与组成配对关系。
A.缩排位置相同的if
B.在其以前末配对的if
C.在其以前未配对的最近的if
D.同一行上的if
19. 逻辑运算符双侧运算对象的数据类型.
A.能是0或1
B.只能是0或非0正数
C.只能是整型或字符型数据
D.可以是任何类型的数据
20. 设x、y以及z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是.
A.’x’&&’y’
B.x<=y
C. x||y+z&&y-z
D.!&&!z ||1)
21. 若但愿当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”。则下列不能知足请求的表达式是.
A.A%2==1 B.! C.! D.A%2
22. 下列不正确的if语句情势是.
A.if;
B.ifx十=y;
C.ifscanf e1se scanf;
D.if{x十十;y十十;}
23. 下列if语句语法正确的是.
A.if
printf
else printf;
B.if
{x=x+y;printf;}
else printf
C.if
{x=x+y;printf;}
else printf
D.if
{x=x+y;printf;}
else printf
else printf;
24. 浏览下列程序
main
{int a=5,b=0,c=0;
if printf;
else printf;
}
以上程序 .
A.语法有错不能通过编译 B.可以通过编译但不能通过连接
C.输出*** D.输出$$
25. 下列程序运行结果是.
main
{int a=100,x=10,y=20,ok1=5,ok2=0;
if
if
If
a=1;
else
if a=10;
a=-1;
printf;
}
A.1 B.0 c.-1 D.不肯定
26. 执行下列程序段后,变量a,b,c得值分别是.
int x=10,y=9;
int a,b,c;
a=? –x: ++y;
b=x++;
c=y;
A.a=9,b=9,c=9 B.a=8,b=8,c=10
C.a=9,b=10,c=9 D.a=1,b=11,c=10
27. 若w,x,y,z,m均为int型变量,则执行下面语句后的m值是.
w=1; x=2; y=3; z=4;
m=? w:x;
m=? m:y;
m=? m:z;
A.1 B.2 C.3 D.4
28. 语句while;中的前提!e等价于。
A.e==0 B.e!=1 C.e!=0 D.~e
29. 下面有关for循环的正确描写是
A.for循环只能用于循环次数已经肯定的情况
B.for循环是先执行循环体语句,后断定表达式
C.在for循环中,不能用break语句跳出循环体
D.for循环体语句中,可以包括多条语句,但要用花括号括起来
30. C语言中while以及do-while循环的主要区分是.
A.do-while的循环体至少无前提执行一次
B.while的循环节制前提比的循环节制前提严格
C.do-while允许从外部转到循环体内
D.do-while的循环体不能是复合语句
31.下列程序段.
x=-1; do{x=x*x;} while;
A.是死循环 B.循环执行二次
C. 循环执行二次 D.有语法过错
32. 下面程序的运行结果是.
define MIN <?:
main
{int i=10,j+15,k;
k+10*MIN;
printf;
}
A.10 B.15 C.100 D.150
46. C语言的编译系统对宏命令的处理是( )。
A.在程序运行时进行的
B.在程序连接时进行的
C.以及C程序中的其它语句同时进行编译的
D.在对源程序中的其它语句同时进行编译的
47. 请读程序
defineMUL*y
main
{int a=3,b=4,c;
c=MUL;
printf;
}
上面程序的输出结果是( )。
A.12 B.15 C.20 D.16
48. 下列程序的输出结果为( )。
defineS PT*x*x
main
{inta=1,b=2;
printf);
}
A.12.0 B.9.5 C.12.5 D.33.5
49. 在“文件包括”预处理语句的使用情势中,当”标识的节制行都是预处理指令
D.C语言的编译预处理就是对源程序进行初步的语法检查
51. 设p1以及p2是指向同一个字符串的指针变量,c为字符变量,则下列不能正确执行的赋值语句是;
52. 设有下面的程序段:
chat s[]=”china”; char *p; p=s;
则以下叙述正确的是
{
char *p1,*p2,str[50]=”abc”;
p1=”abc”; p2=”abc”;
strcpy);
printf;
}
A. abcabcabc B.bcabcabc C. aabcabc D.cabcabc
54. 若有定义:int a[2][3];则对数组a的第i行第j列(假定i,j已正确说明并赋值)元数值的正确引用为+j) B.[j] C.* D.*+j
55. 若有定义:int (*p)[4];则标识符p.
A.各成员所需内存量的总以及
B.结构中第一个成员所需内存量
C.成员中占内存量最大者所需的容量
D.结构中最后一个成员所需内存量
58. C语言结构体类型变量在程序执行期间( ).
A.所有成员一直驻留在内存中
B.只有一个成员驻留在内存中
C.部份成员驻留在内存中
D.没有成员驻留在内存中
59. 下列对C语言中共用体类型数据的叙述正确的是( )。
A.可以对共用体变量名直接赋值
B.一个共用体变量中可以同时寄存其所有成员
C.一个共用体变量中不可能同时寄存其所有成员
D.共用体类型定义中不能呈现结构体类型的成员
60. C语言共用体型变量在程序运行期间 ( ) 。
A.所有成员一直驻留在内存中
B.只有一个成员驻留在内存中
C.部份成员驻留在内存中
D.没有成员驻留在内存中
61. 请读程序片断:
int x=20;
printf;
上面程序片断的输出结果是.
A.02
B.–20
C.-21
D.-11
62. 在位运算中,操作数每一左移一名,其结果至关于.
A.操作数乘以2
B.操作数除了以2
C.操作数除了以4
D.操作数乘以4
63. 系统的标准输入文件是指。
A. 键盘 B .显示器 C .软盘 D. 硬盘
64. 当顺利执行了文件关闭操作时,fclose函数的返回值是。
A .-1 B. TURE C. 0 D.1
65. 已知函数的调用情势:fread;其中buffer代表的是 。
A .一个整形变量,代表要读入的数据项总数
B .一个文件指针,指向要读的文件
C .一个指针,指向要读入数据的寄存地址
D.一个存储区,寄存要读的数据项
二、填空题:
1. C程序的基本单位是 。
2. 表达式10%3的结果是 。
3. 假定所有变量均为整型,则表达式的值为 。
4. 在C语言中(以16位PC机为例),一个float型数据在内存中所占用的字节数为 ;
5.C语言所提供的基本数据类型包含: 。
6.表达式pow)) 值的数据类型为 。
7.下列程序的执行结果是 。
include<stdio.h>
main
{
float f=31.41592;
printf
}
9. 下列程序的执行结果是 。
include<stdio.h>
f
{int i=0;
while
{printf;
i++;}
}
main
{int a[]={1,5,10,9,11,7};
f;
}
21. 设有下列宏定义:#define WIDTH 80
define EXCH {int t;t=a;a=b; b=t;}
main
{int x=5,Y=9;
EXCH;
printf;
}
24. 下面程序段的运行结果是 。
char s[80], *sp=”HELLO!”;
sp=strcpy;
s[0]=’h’;
puts;
25. 下面程序段的运行结果是 。
char s1=”AbcdEf”,s2=”aB”;
s1++;
t=>0);
26. 下面程序段的运行结果是 。
char *p=”PDP1-0”;
int I,d;
for
{d=isdigit);
if printf);
}
27. 当运行下列程序时,从键盘输入 book<CR>
book <CR>
,则下面程序段运行的结果是 。
char a1[80],a2[80],*s1=a1,*s2=a2;
gets;gets;
if) printf:
else printf;
printf));
28. 若已定义:
struct num
{int a;
int b;
float f;
} n={1,3,5.0};
struct num * pn = &n;
则表达式 .a+pn->f的值是 。
29. 在C语言中,&运算符作为双目运算符时表示的是 运算.
30. 在C语言中,文件的存取是以字符为单位的,这类文件被称作 文件。
三、编程题:
1.将一个字符串的内容倒置过来。
2. 求整形数组的最大值。
3. 求字符串的长度(不用strlen)。
4. 编写程序,将字符串str中的所有字符’k’删除了。
5.找出二维数组的鞍点,即该位置上的元素是该行上的最大值,是该列上的最小值。二维数组也可能没有鞍点。
6.a是一个2*4的整型数组,且各元素均已赋值.函数max_value可求出其中的最大元素值max,并将此值返回主调函数.今有函数调用语句max=max_value;请编写max_value函数.
7. 设计函数,实现字符串联接操作(不使用strcat)。
8. 下列程序的功能是利用下面的近似公式计算e的n次方.函数f1用来计算每一项份子的值,函数f2用来计算每一项分母的值.请编写f1以及f2函数.
ex=1=x=x2\\2!+x3\\3!…
9. 从键盘上输入若干个学生的成就,计算出平均成就,并输出不及格的成就以及人数。
10.设计函数,在二维数组中发生如下情势的扬辉三角形。
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
······
11. 回文是从前向后以及从后向前读起来都同样的句子。写一个函数,判断一个字符串是不是为回文,注意处理字符串中有中文也有西文的情况。
12.约瑟夫环问题:编号为1,2,3,···,n的n个人按顺时针方向围坐一圈,每一人持有一个正整数密码。一开始任选一个正整数m作为报数上限值,从第一个人开始按顺时针报数,报到m时休止,报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始从新从1报数,如斯下去,直到所有人全体出列为止。设计程序求出出列顺序。
参考谜底
一、选择题
1. B 2.D 3.A 4.D 5.A 6.A 7.B 8.C 9.A 10.A 11.B 12.B 13.D 14.D 15.D 16.A 17.D 18.C 19.D 20.D 21.C 22.C 23.B 24.D 25.C 26.B 27.A 28.A 29.D 30.A 31.C 32.B 33.B 34.D 35.C 36.D 37.C 38.D 39.B 40.B 41.B 42.A 43.A 44.A 45.B 46.D 47.A 48.B 49.C 50.C 51.B 52.D 53.C 54.A 55.C 56.C 57.A 58.A 59.C 60.B 61.C 62.A 63.A 64.C 65.C
二、填空题
1.函数 2. 1 3. 9 4. 4 5.单精度型、双精度型、整型、字符型以及枚举型 6.双精度型 7.3.500000,3.5 8. 31.415920,3.14159e+01 9.end 10.非0的数字 11.1 12.c!=&39; 13.36 14.3 15.3 16.5 17.i*m+j+i 18.按行主顺序寄存 19.函数说明部份以及函数体 20.5 10 9 21.2400 22.12 23.x=8,y=5 24.hELLO!
25.1 26.1*0* 27.include <stdio.h>
include <stdio.h>
int max
{ int i,mx;
mx=a[0];
for
if mx=a[i];
return mx;
}
main
{ int a[8]={23,4,6,12,33,55,2,45};
printf);
}
3.解:参考程序如下:
include <stdio.h>
void delchar
{ int i,j;
for
if
str[j++]=str[i];
str[j]=&39;;
}
main
{ char str[80];
int i,j;
gets;
delchar;
puts;
}
5.解:依鞍点定义,对数组每一行元素循环,找到当前行上最大元素,记下所在的列号,再判断此元素是不是为对应列的最小元素。将寻觅打印数组鞍点的操作定义为函数,如果没有鞍点,函数返回-1。参考程序如下:
define N 10
include <stdio.h>
void scat
{ int i,j;
for ;
for
s1[i++]=s2[j];
s1[i]=&39;;
}
main
{ char s1[80]=&34;;
char s2[10]=&34;;
scat;
printf;
}
8. ex=1=x=x2\\2!+x3\\3!…
float f2
{ }
float f1
{ }
main
{ float exp=1.0;int n,x;
printf’
scanf; printf;
exp=exp+x;
for exp=exp+f1/f2;
printf=%8.4f\\n”,x,exp)’
}
运行结果:Input a number:3
The is exp=20.0855
float f2
{ifreturn1;
else return*n);
}
float f1
{int I; float j=1;
forj=j*x;
return j;
}
9.解:用输入负数表示输入收场。参考程序如下:
include <stdio.h>
include <stdio.h>
include <stdio.h>
#define N 100
main
{ int a[100];
int i,j,m,n,k=0;
printf;
scanf;
printf;
for
scanf;
printf;
for
{ j=1;
while
{ while /*跳过已出列的人*/
k=%n;
j++;
k=%n;
}
while /*跳过已出列的人*/
k=%n;
printf;
m=a[k]; a[k]=0;
}
}
四、翻译题
1.(对这类人)我的确既感到快活而又
以上就是微观生活(93wg.com)关于“C语言程序设计(专科)温习题”的详细内容,希望对大家有所帮助!
评论