1/13-
1.1 Main函数
C语言规定:在一个源程序中. main函数的位置(C)
A.必须在最开始
B.必须在系统调用的库函数的后面C.可以任意
D.必须在最后
一个C语言源程序中,main()函数的位置(D)A.必须在其他所有函数之后
B.必须在其他所有函数之前
C.必须在固定的位置上
D.可以在任意位置
下列叙述中正确的是(C)
A.c语言程序将从源程序中第一个函数开始执行
B.可以在程序中由用户指定任意一个函数作为主函数.程序将从此开始执行C.C语言规定必须用main作为主函数名. 程序将从此开始执行. 在此结束D. main可作为用户标识符. 用以命名任意一个函数作为主函数
1.2 printf的使用
下列叙述中输出正确的是( BD)
A. '\t' 的用处是光标移到下一行
B. '\x'是转义字符.可以后面跟十六进制数来输出任意字符'\r' 光标移到行的最右边
D. '\t'的用处是制表符
下面的程序段输出是( D)
int k=11;
printf("k=%d, k=%o,k=%x\n" ,k,k,k);
1/13 .
期末重点.md
2023-12-12
A. k=11,k=12,k=11
C. k=11,k=013;k=0xbD. k=11,k=13,k=b
1.3二进制/八进制/ +进制/十六进制及它们之间的转换表达式0195是一个八进制整数 . (F)
下列关于八进制与十六进制的描述中. 错误的是(B)。A.八进制是一种逢八进一-的机制
B.八进制由0- 8这些符号来描述
C.十六进制是一种逢 十六进. -的机制
D.十六进制由0-9、A-F这些符号来描述
2.分支结构.
if及笑系/逻辑运算符
当x=10时.下列程序输出为(A)if(1<x<3){
printf("1");(213)支结构
if及笑系/逻辑运算符
当x=10时.下列程序输出为(A)if(1<x<3){
printf("1");
}else{
printf("2");
A.1
B.2
若变量已经被正确定义,为表示“变量x和y都能被3整除”,应使用的C表达式是(D)
A.(x%3 != 0) II (y%3 != 0)B.(x%3 != 0) && (y%3 != 0)C.(x%3 == 0) II (y%3 == 0)D.(x%3 == 0) && (y%3 == 0)
判断变量x、y中有且只有1个值为8的表达式为(A)
A.!(x*y)&&x+yB.(x*y&&x+y
2113
期末重点.md
2023-12-12
C.x*y==0D. x==0&&y!=0
表达式!x等价于x != 1。(F)
表达式!!6的值是__ 。 (1)
以下程序输出为(1)if(a=5){
printf("1");}else
printf("0");
设有定义"int a=1, b=2, c=3, d=4, m=2, n=2;”,则执行表达式“(m=a>b)&&(n=c>d)”后, n的值为(2)
switch及switch中的break
若a、b、c1、c2、x、y均是整型变量,以下正确的switch语句是A. switch(a+b);
case 1: y=a+b; break;
case 0:y=a-b; break;}
B. switch(a*a+b*b)
case 3:
case 1: y=a+b; break;case 3: y=b-a, break;}C.switch a
case c1: y=a-b; break;case c2: x=a*b; break;
default: x=a+b; }
D. switch(a-b)
default: y=a*b; break;switch R switchg ÁJbreak
若a、b、c1、C2、x、y均是整型变量, 以下正确的switch语句是A. switch(a+b);
fcase 1: y=a+b; break;
case 0:y=a-b; break;]
B. switch(a*a+b*b)
case 3:
case 1: y=a+b; break;case 3: y=b-a, break;]
C. switch a
f case c1: y=a-b; break;case c2: x=a*b; break;
default: x=a+b; ]
D. switch(a-b)
default: y=a*b; break;case 3: case 4: x=a+b; break;
case 10: case 11: y=a-b; break; 1
3/13
期末重点.md
2023-12-12
下列程序段的输出结果是(A)int main(void)
intx=1,a=0,b= 0;
switch(x)
(
case 0: b++;case 1: a++;
case 2: a++; b++;
printf("a=%d, b=%d)n",a,b);
return 0;
1
A.a=2,b=1B.a=1,b=1c.a=1,b=0D.a=2,b=2
2ETTltt3.循环结构
3.1循环执行次数与循环变量之间的笑系
下面的这个循环的循环次数是( B)
A.语法错误,不能执行B.无限欠
C.10 !
D.1
以下的for 循环欠数是多少次? (D)
for(x=0,y=0;(y!=123)|| (x<4);X++) ;
A.执行3次B.执行4次C.循环次数不定D.是无限循环
while循环的条件满足的时候循环继续,而do-while的条件满足的时候循环就结束了。(F)
41 13
期末重点.md
2023-12-12
若变量已正确定义↓以下while循环结束时, i的值为11 (F)
i=1;
while (i <= 10){
printf("%d\n",i);
语句for(i=1,j=10;i<j;++i, j--) ;执行之后i,j的值均为5。(F)
3.2整数不同位数的分解与组合
求整数的位数及各位数字之和
对于给定的正整数N .求它的位数及其各位数字之和。
给定一个十六进制数.输出对应十进制数3.3循环判断质数
通过循环判断质数(有能力写成函数)
4.函数
4.1 C语言中函数的作用、定义、默认类型C语言函数返回类型的默认定义类型是void。(F)
C语言中,通过函数调用只能获得一个返回值。(F)
要通过函数调用来改变主调函数中某个变量的值. 可以把指针作为函数的参数。(T)
只要将多个指针作为函数的参数,函数就一定会返回多个值。 (F)
期末重点.md
2023-12-12
C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是(B)
A. void
B. intC.floatD. double
4.2形参及实参
函数的形参都属于全局变量。( F)
函数的实参和形参都可以是变量、常量和表达式。(F)
函数的形参都属于全局变量。(F)
若有函数调用: fun(a+b, (x,y), fun(n+k,d,(a,))); 在此函数调用语句中实参的个数是(3个)
若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是___。 (D)
A.函数调用可以作为独立的语句存在B.函数调用可以作为一个函数的实参C.函数调用可以出现在表达式中D.函数调用可以作为一个函数的形参
按照C语言的规定.在参数传递过程中.既可以将实参的值传递给形参。也可以将形参的值传递给实参,这种参数传递是双向的。( F4.3全局变量及局部变量
关于全局变量和局部变量的说法,正确的是(A)
A.全局变量必须在函数之外进行定义
B.若全局变量与局部变量同名,则默认为全局变量
C.全局变量的作用域为其所在的整个文件范围
D.全局变量也称外部变量,仅在函数外部有效↓而在函数内部无效
期末重点.md
2023-12-12
在C语言中, 关于变量的作用域.下列描述中错误的是(D)
A.局部变量只在整个函数的运行周期中有效
B.全局变量的作用域为整个程序的运行周期
C.当全局变量与局部变量重名时.局部变量会屏蔽掉全局变量D.全局变量会覆盖掉所有与它重名的局部变量
以下叙述中不正确的是(D)
A.在不同的函数中可以使用相同名字的变量
B.函数中的形式参数是局部变量
C.在一个函数内定义的变量只在本函数范围内有效
D.在一个函数内的复合语句中定义的变量在本函数范围内有效
静态局部变量如果没有赋值,其存储单元中将是0。(T)
5.数据类型及表达式5.1字符类型与整数类型的转换
已知字母A的ASCII码为十进制的65。下面程序段的输出是( A)char ch1, ch2;
ch2='A'+'6'-'3';
printf("%d,%c\n" ,ch1,ch2);
A.67,D
B.B,C
D.不确定的值
从键盘输入一串字符,统计出其中的英文大写字母个数、英文小写字母个数、数字字符个数以及其他字符个数并输出,请填空完成相应功能。
输入输出样例如下:
输入样例:
ABCDefg78^&*输出样例1 :
713 .
期末重点.md
2023-12-128/13
#include <stdio.h>
int main(void)
{int n1_ _ch=0,n2_ ch=0, num=0 , other=0;//n1_ _ch和n2_ ch分别表示英文大写和小写字母字符个数,num表示数字字符个数, other表示其他字符个数
char ch;
//从键盘输入一个字符ch=getchar()
while(ch!='\n')
{if(_ .
ch>='A'8&ch<='Z'
n1_ ch+t;
else if(
ch>=' a' &&Ch<='z'
n2 ch++;
ch>='0' &&ch<='9'
else if
lumtt;
else other++;
//从键盘输入一个字符ch-getchar()
printf("%d1,%d, ,%d, %d\n" ,n1 _ch,n2_ ch, num, other);
return 0;
5.2 C语言的数据类型
C的double类型数据可以精确表示任何实数。(F)
表达式0195是一个八进制整数。(F)
5.3运算符、及其优先性、结合性表达式~(~2<<1)的值是_
表达式(z=0, (x=2)1|(z=1),z) 的值是____。 (1)
6.1数组的初始化及定义(省略长度)
对于一维数组,例如: int arr[3];则arr[3]表示数组的第3个元素。(F)
char s1[80],s2[80];s1=s2;这样赋值 是正确的。(F)
static int b[4][3] = { {1,2,3},{0}, {4,5} };元素b[3][2]=_(8)
static int b[ ][3] = { {2,3}, {0}, {5}, {0},{5} };元素b[3][2]=___ (0)
6.2字符串
9113
期末重点.md
2023-12-12
如果strcmp(s1,s2)返回的结果为0,表示字符串s1和s2不相同。(F)
若字符数组s1和s2中均已正确存储字符串,则可以使用if(s1>s2) 进行两字符串大小的比较。(F)
char s[80]; s="hello" ;这样赋值是可以的。(F)
strlen(str)的输出结果是(str字 符串的长度)
字符串的输入输出
6.3 - -/二 维数组的输入、输出与使用
指针
数组与指针的失系
数组的基地址是在内存中存储数组的起始位置.数组名本身就是-个地址即指针值,(T)
若有以下说明且0<=i<10.则对数组元素的错误引用是(C)
A.*(a+i)B.a[p-a+i]C.p+i
D. *(&a[i])
字符串及指针数组的笑系
12/13r +color[5]- {"red", "blue", "yellow", "green", "black" };如何凋用green中的第二个e :
(*(color[3]+3))
囘接坊向返算符与取地址返算符
1013
期末重点.md
2023-12-12
如果有定乂:intm,n=5,*p=&m;与m=n等价的語句是(B)。
A.m = *p;B.*p = *&n;C.m = &n;D.m = **p;
下面程序的輸出結果是(C)。
# include <stdio.h>
void fun (int *x, int *y)
printf("%d%d", *x, *y);*x-3;
*y= 4;
int main(void)
int x=1, y-2;
fun(&x,&y);
printf("%d%d", x, y);
return 0;}
A.2134B.1212
C.1234
D.2112
下列珸句定乂xカ指向int奬型変量a的指針·正磅的是()·
A.int a, *x = a;B.int a,*x= &a;c.int *x = &a, a;D.inta,x= a;
下列程序的輸出結果是( B)
int main(void)
int a[10] ={0,1,2,3,4,5,6,7,8, 9},*p= a+3;printf(d", *++p);
1113
13/13m
2023-12-12
return 0;
C.a[4]的地址D.非法
对于下列程序.正确的是(A)void f(int *p)
*p= 5;
int main(void)
int a, *p;
a =10;
P= &a;
f(p);
printf(*%d”,(*p)++);
return 0;
A.5
B.6
C.10
D.11
以下程序的运行结果是(B)
#include <stdio.h>
void sub(int x, int y, int *z)
*z = y-x;int main()
int a,b,c;
sub(10,5, &a);
sub(7, a,&b);
sub(a, b, &c);
printf("%d,%d,%d\n", a,b, c);
return 0;
12/13
期末重点.md
2023-12-12
A.5,2,3
B.-5,-12,-7C.-5,-12,-17D.5,-2,-7
下面程序段的运行结果是(6 6 7)
int i, j, k=5, *p;
i = ++(*p);
j = (*p)++;
printf("%d %d %d",i, j, k) ; /* 输出的数字之间有一个空格*/