租用域名与空间的网站并会使用,小白如何自己做网站,如何给网站增加外链,推广链接打开目录
选择题
1、设变量已正确定义#xff0c;以下不能统计出一行中输入字符个数#xff08;不包含回车符#xff09;的程序段是#xff08; #xff09;
2、运行以下程序后#xff0c;如果从键盘上输入 65 14回车 #xff0c;则输出结果为#xff08; …
目录
选择题
1、设变量已正确定义以下不能统计出一行中输入字符个数不包含回车符的程序段是
2、运行以下程序后如果从键盘上输入 65 14回车 则输出结果为
3、若运行以下程序时从键盘输入 ADescriptor回车 则下面程序的运行结果是
4、如下函数是求两个int数字最大公约数的指出其中存在的问题【多选】 5、执行下面的程序段语句3的执行次数为
掌握continue和break的区别 编程题
1.错误的集合
2.密码检查 选择题
1、设变量已正确定义以下不能统计出一行中输入字符个数不包含回车符的程序段是
A: n0;while(chgetchar()!\n)n; B: n0;while(getchar()!\n)n; C: for(n0;getchar()!\n;n); D: n0;for(chgetchar();ch!\n;n); 解析 本体考察的是对for循环 for循环语句其中第一项初始化表达式只执行一次因此ch只从输入流中取一个字符之后就再不会取字符因此会死循环。选D for(赋值语句判断语句调整语句) //循环变量赋初值; 循环条件; 循环变量增值 { //... } 2、运行以下程序后如果从键盘上输入 65 14回车 则输出结果为 int main()
{int m, n;printf(Enter m,n;);scanf(%d%d, m,n);while(m!n) //1{while(mn) mm-n; //2while(nm) nn-m; //3
}printf(m%d\n,m);return 0;
} A: 3 B: 2 C: 1 D: 0 解析 本题考察的是while循环循环嵌套的理解 初值m65,n14循环1判断m!n为真来到循环2判断mn为真执行mm-n;直到m9,n14 循环2结束来到循环3判断nm为真执行nn-m;直到m9,n5循环3结束回到循环1如此往复直到mn时循环结束。选C while循环控制表达式 { 语句序列 } 3、若运行以下程序时从键盘输入 ADescriptor回车 则下面程序的运行结果是 #include stdio.h
int main()
{char c;int v0 0, v1 0, v2 0;do{switch (c getchar()){casea:caseA:casee:caseE:casei:caseI:caseo:caseO:caseu:caseU:v1 1;default:v0 1; v2 1;}} while (c ! \n);printf(v0%d,v1%d,v2%d\n, v0, v1, v2);return 0;
} A: v07,v14,v27 B: v08,v14,V28
C: v011,v14,v211 D: v012,v14,v212 解析 本题考察的是switch-case-default 语句 switch 语句中如果进入某条case入口中没有break; 会进入下一条case中一直到default直到遇到break;或者代码结束 例当c为A时从case A进入先后执行v11;v01;v21; 而当c为p时从default进入先后执行v01;v21;最终v0和v2是相等的。选D switch(表达式) { case 常量1:语句1 case 常量2:语句2 default:语句n break; } 4、如下函数是求两个int数字最大公约数的指出其中存在的问题【多选】 int gcd(char x, char y)
{int min x y ? x : y;for (min 0; min 0; min--)if (x% min 0 y % min 0)return min;
} A: 参数类型不对 B: 循环变量min初值不对
C: 判断等于的符号不对 D: 返回类型不对 解析 本题考察的和表示判断是否相等表示赋值运算符 1.函数实参是int形参用char不对会发生截断丢失数据 2.min在for循环开始时更新为0不再是两个形参中的较小值 3.判断是否整除的时候误将写成赋值运算符 4.函数最终要返回一个int值返回值类型没问题但是这里要强调一个选项中没写出的问题 选ABC 知识点 和 “”是赋值。 它的作用是将一个表达式的值赋给一个左值。一个表达式或者是一个左值或者是一个右值。所谓左值是指一个能用于赋值运算左边的表达式。左值必须能够被修改不能是常量。我们用变量作左值还可以看到指针和引用也可以作左值。 “”是相等操作符 判断两边是否相等。利用相等运算符如果希望相等运算符返回true则运算符两侧的值或语句必须使相等的如果不相等则运算符返回false。 5、执行下面的程序段语句3的执行次数为 for (i 0; i n - 1; i) // (1)
for (j n; j i; j--) // (2)
state; // (3) A: n(n2)/2 B: (n-1)(n2)/2 C: n(n1)/2 D: (n-1)(n2) 解析 本题考察多重循环体 外循环有n次 当i0,内循环为n次, 当i1,内循环为n-1次, 当i2时内循环为n-2次 以此类推总次数为 n(n-1)(n-2)......21,就是个等差数列等于n(n1)/2。 选C 在多重循环中有很多类型的循环嵌套 // 外层循环
while(条件1){ // 内层循环for(条件2){ }do{}while(条件3);
} 在循环嵌套中最需要注意的就是跳转语句 掌握continue和break的区别 break 退出当前循环如果出现在多重循环的内层循环中不会退出外层循环只会退出当前循环。 continue继续 结束本次循环后面的代码不执行了进入下一次循环。 break可以出现在switch选择结构和循环结构中continue只能出现在循环中。 利用continue和break实现重复输入。 编程题
1.错误的集合
645.错误的集合——力扣 集合 s 包含从 1 到 n 的整数。不幸的是因为数据错误导致集合里面某一个数字复制了成了集合里面的另外一个数字的值导致集合 丢失了一个数字 并且 有一个数字重复 。 给定一个数组 nums 代表了集合 S 发生错误后的结果。 请你找出重复出现的整数再找到丢失的整数将它们以数组的形式返回。 解析 将数组排序才能去遍历 returnSize是指返回数组元素的个数。 1.使用qsort()函数将数组排序成升序 2为返回值数组开辟动态内存空间否则在出函数时会释放 3定义一个数来记录数组的前一个数 4遍历数组相同记录为num[0]数组当前元素-前一个元素值大于一说明中间的就是缺的元素num[1]; 5如果最后一个元素不等于长度说明最后一个就是缺的元素。 int my_cmp(const void* p1,const void* p2)
{return *(int*)p1 - *(int*)p2;
}int* findErrorNums(int* nums, int numsSize, int* returnSize)
{//将数组进行升序排序qsort(nums,numsSize,4,my_cmp);//returnSize为返回数组元素个数*returnSize 2;//开辟动态内存空间否则在出函数时会释放int* num (int*)malloc(sizeof(int)*2);//定义数组的前一个数int front 0;//遍历数组for(int i 0; i numsSize;i ){//相同记录为num[0]if(nums[i] front){num[0] nums[i];}//数组当前元素-前一个元素值大于一说明中间的就是缺的元素else if(nums[i] - front 1){num[1] nums[i]-1;}front nums[i];}//最后一个元素不等于长度说明最后一个就是缺的元素if(nums[numsSize-1] ! numsSize){num[1] numsSize;}return num;
}
2.密码检查
密码检查_牛客题霸_牛客网 (nowcoder.com) 输入一个数n接下来有n(n≤100)行每行一个字符串表示一个密码输入保证字符串中只出现大写字母小写字母和数字字符串长度不超过100。 解析 1创建输入密码数量的n和字符串arr 2for循环遍历创建用于记录密码的字符是否正确count顺便求字符串长度 3判断字符串长度是否合法 4遍历一遍字符串格式正确就记录count 5最后将字符串长度与count比较相同“YES”反之“NO”。 int main()
{int n 0;scanf(%d, n);//字符串长度限制char arr[100] { 0 };//密码个数for (int j 0; j n; j){scanf(%s, arr);//用于记录密码的字符是否正确int count 0;//字符串长度int sz strlen(arr);//是否符合长度要求if (sz 8 sz 100){//遍历一遍字符串格式正确就记录for (int i 0; i sz; i){if (arr[i] A arr[i] Z ||arr[i] a arr[i] z ||arr[i] 0 arr[i] 9){count;}}}//长度对比if (sz count){printf(YES\n);}else{printf(NO\n);}}return 0;
}