C语言百日刷题第十三天
- 创业
- 2025-08-21 07:12:01

前言
今天是刷题第13天,放弃不难,但坚持一定很酷~ 临近期末,再刷一套模拟题
C语言百日刷题第十三天 前言选择题判断题编程题 选择题1.若由定义int*p1,*p2,m=5,n;以下赋值语句都正确的选项是() A、p1=&m;p2=&n;*p2=*p1 B、p1=&m;*p2=*p1 C、p1=&m;p2=&p1 D、p1=&m;*p1=*p2
正确选项:A
int *p1,*p2的意思是定义两个指针,名字为p1和p2,指针需要指向的是地址。而BCD并未初始化p2指针
2.以下选项中,与k=n++完全等价的表达式是() A、k=n,n=n+1 B、k=++n C、n=n+1,k=n D、k+=n+1
正确选项:A
n++是先给值,后自加。所以等价于k=n,n=n+1
3.以下错误的语句是() A、char word []={"china"}; B、char word []='china'; C、char word []="china"; D、char word []={'c','h','i','n','a'};
正确选项:B
单引号只能括一个字符
4.设a=1;b=2;c=3;d=4;则表达式a<b?a:c<d? a:d的结果是____。 A、3 B、1 C、4 D、2
正确选项:B
三目运算符a?b:c的意思是,如果表达式a对则执行b否则执行c。 本题中:a<b是对的,所以执行a,而a=1,所以该表达式的结果为1
5.以下叙述正确的是() A、C语言中的函数不可以单独进行编译 B、C语言的源程序不必通过编译就可以直接运行 C、C语言程序经编译形成二进制代码可以直接运行 D、C语言中的每条可执行语句最终都将被转为二进制的机器指令
正确选项:D
如果说每条语句都能被转化为二进制那就是错的(注释不会被执行)。但是每条可执行语句被转化为二进制机器指令是对的
6.以下关于运算符的优先顺序的描述正确的是() A、逻辑与运算符<关系运算符<算术运算符<赋值运算符 B、赋值运算符<逻辑与运算符<关系运算符<算术运算符 C、算术运算符<关系运算符<赋值运算符<逻辑与运算符 D、关系运算符<算术运算符<赋值运算符<逻辑与运算符
正确选项:B C语言中:赋值运算符<逻辑运算符<关系运算符<算术运算符
7.以下程序的输出结果为:
void main() { for (int x = 2; x < 5;) printf("%d ", ++x); }A、3 4 5 B、3 4 C、2 3 D、2 3 4
正确选项:A ++x是先自加,后给值
8、下列说法错误的是() A、任何非主函数可以调用其他任何非主函数 B、主函数可以分为两个部分,主函数说明部分和主函数体 C、程序可以从任何非主函数开始执行 D、主函数可以调用任何非主函数的其函数
正确选项:C
C语言中,main函数是程序的入口,C语言只能从main函数开始执行
9.以下程序中while循环的循环次数为()
int i = 0; while (i < 10) { if (i < 1)continue; if (i == 5)break; i++; }A、6 B、无限次 C、1 D、10
正确选项:B
continue语句的作用是跳过本次循环体中余下尚未执行的语句,立即进行下一次的循环条件判定,所以i++一直没有被执行
10.下面说法正确的是() A、A、B、C三个选项都是错误的 B、if语句不可以嵌套 C、if语句让程序决定是否执行特定的语句或语句快,而if else语句则让程序决定执行两条语句或者语句块中的那条语句,这种语句对于选择其中一种操作很有用。 D、if else 中的操作如果需要多余语句,需要大括号将他们括起来,否则会出现编译错误。
正确选项:C
对于的代码应该删掉或者注释掉,而不是用大括号括起来
11.若函数调用时参数为基本数据类型的变量,以下叙述正确的是 A、只有当实参与对应形参同名时才共同占有存储单元 B、实参与其对应的形参共占存储单元 C、实参将数据传递给形参后,立即释放原先占用的存储单元 D、实参与其对应的形参分别占用不同的存储单元
正确选项:D
12.设函数:ggg(float x){ printf(”%d\n”,x*x);}则函数的返回值类型为: A、与参数X的类型相同 B、void C、无法确定 D、int
正确选项:D
%d是int类型的占位符
13.字符串"ABC"在内存中占用的字节数为() A、4 B、8 C、3 D、16
正确选项:A
每个字符串后面都有系统预设的结束符\0,所以ABC在内存中的实际储存形式应该为:A B C ‘\0’,一共占四个字节
14.以下程序输出结果是()
#include<stdio.h> void main() { int a = 0, j; for (j = 0; j < 4; j++) { switch (j) { case 0: case 3: a += 2; case 1: case2: a += 3; default: a += 5; } } printf("%d\n", a); }A、10 B、20 C、13 D、33
正确选项:D
这题恶心在case和2之间没有空格,所以case 2其实是不存在的, 当j=0时候执行a+=2,因为后面没有break所以,会执行完后面的所有语句。所以第一次循环结束后,a=10,第二次循环时j=1,执行完后a=18,第三次循环j=2,注意了case 2并不存在,因为它的case和2之间没有空格,不符合语法,所以这次直接执行a+=5.此时a=18+5=23,第四次循环时,j=3,从上往下走,直接+10,所以a=33
15.下面程序的输出是()
void main() { int a[10] = { 1,2,3,4,5,6,7,8,9,10 },*p = a + 1; printf("%d\n", *(p + 2)); }A、3 B、1 C、2 D、4
正确选项:D
* p = a+1 表明指针p指向的是数组的第二个元素 2 而p+2则让指针右移了2位,指向的是4,解引用后打印的就是4
16.已知定义x和y为double类型,则表达式x=1;y=x+3/2的值是() A、2.5 B、2.0 C、1.5 D、1
正确选项:B
3是整型,2也是整型,3/2是整型除整型,所得到的结果应该也为整型,所以舍去小数点,所以y=1.0+1 =2.0
17.以下不能正确进行字符串赋值的语句是() A、char str[]="good"; B、char str[]={"good!"}; C、char str[5]="good"; D、char str[5]={'g''o''o''d'};
正确选项:D
D选项每个字符之间没有 ,分割。考的比较细,感谢网友咖啡君的指正
18.以下选项中,非法的字符常量是() A、‘a’ B、‘\t’ C、“n” D、‘\xaa’
正确选项:C
C是字符串
19.对于 char ch ,下面输入语句正确的是_____ A、sacanf(“%c”,&ch); B、scanf(“%c”,ch); C、scanf(“%lf”,ch); D、printf(“%lf”,ch);
正确选项:A
char型的占位符应该是%c,存储应该有&
20.执行下面程序输出语句后,a的值为()
int main() { int a; printf("%d\n", a = 3 * 5); }A、65 B、10 C、15 D、20
正确选项:C
判断题1.C代码的组织单位是函数。()
对
2.在对数据定义的同时赋初值时,可以不指定数组的长度。()
对
初始化赋值的时候,可以不写数组长度,此时你输入多少数,数组就默认为多大
3.C语言提供输入输出函数.()
错
C语言的输入输出函数是库函数提供的不是C语言提供的
4.函数strcpy(str1,str2)是将str2中的字符串复制导str1数组中。()
对
5.按变量名进行访问的形式,称为”直接访问”方式。()
对
6.执行switch语句是,在进行作为条件表达式求值后,将从某个匹配的标号位置起向下执行,当碰到下一个标号位置时停止执行。()
错
不会停止,遇见break才停止
7.一个C程序只能有一个主函数,作为程序的入口。()
对
8.在下面程序段中循环体将无限执行。x=-1;do{x=x*x;} while(!x);()
错 只会执行1次
9.字符型常量表示方式是将字符用英文的双引号包围。()
错
字符型常量要用单引号包围
10.switch语句在case后允许有多个语句,可以不用{}括起来。()
对
没遇见break函数,就会一直执行下去。
11.数组元素只能用下标法或元素名来表示。()
错
还可以用指针
12.不同于数学,在c中处理数据必须明确其类型。()
对
13.数组下标从0开始。()
对
14.C语言中三种循环不可以相互嵌套。()
错
15.C语言的特点之一就在于允许函数的递归调用。
对
编程题1.用递归方法求n的阶乘。
#include<stdio.h> long long Fac(unsigned int n) { int f; if (n == 0 || n == 1) f = 1; else f = Fac(n - 1) * n; return (f); } int main() { unsigned int n = 0; long long y = 0; scanf("%d", &n); y = Fac(n); printf("%lld\n", y); return 0; }需要注意的是,对于y要用长长整型,防止数据溢出。
2.用指针的方法写一函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度。
#include<stdio.h> int my_strlen(char* s) { char* p = s; while (*p != '\0') p++; return p - s; } int main() { char ch[30]; scanf("%s", &ch); int a = my_strlen(ch); printf("%d\n", a); return 0; }C语言百日刷题第十三天由讯客互联创业栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“C语言百日刷题第十三天”
上一篇
SpringBoot整合Mybatis-Plus分页失效
下一篇
防火墙豁免实验