遇事不决,可问春风,春风不语,即随本心

欢迎来到我的笔试强训计划专栏,这是计划正式开始的第一天。另外,我想说的是:博主本身水平有限,本专栏只作为学习笔记分享记录使用,对于一些题目做法肯定有更优的解,不必过于较真。
1.以下for循环的执行次数是()
for(int x = 0, y = 0; (y = 123) && (x < 4); x++);
A.是无限循环
B.循环次数不定
C.4次
D.3次
for循环,y=123是赋值为真的,后面就是剩下x = 0、1、2、3 总共四次循环所以选C
2.以下程序的运行结果是()
include <stdio.h>
int main(void) {
printf("%s , %5.3s\n", "computer", "computer");
return 0;
}
A.computer , puter
B.computer , com
C.computer , computer
D.computer , compu.ter
对于%s遇到\0就停止打印。
对于%5.3s并不常见: % m.ns:
m : 输出字符串的宽度
n :左起截止目标字符串的n个字符,而且是右对齐,左边不够补空格。当字符串 > n > m :此时m的作用失效了,直接截取n
当n > 字符串 :作用和%s一样,遇到\0就停止所以%5.3s 输出的是 com且,com前面补两个空格
3.下列main()函数执行后的结果为()
int func(){
int i, j, k = 0;
for(i = 0, j = -1;j = 0;i++, j++){
k++;
}
return k;
}
int main(){
cout << (func());
return 0;
}
A.-1
B.0
C.1
D.2
这里的条件判断部分j 赋值为0恒为假,不会进入循环所以K等于0
4.下面程序输出是什么?
include <stdio.h>
int main()
{
int a=1,b=2,c=3,d=0;
if(a == 1 && b++==2)
if(b!=2||c--!=3)
printf("%d,%d,%d\n" ,a,b,c);
else
printf("%d,%d,%d\n" ,a,b,c);
else
printf("%d,%d,%d\n" ,a,b,c);
return 0;
}
A.1,2,3
B.1,3,2
C.3,2,1
D.1,3,3
else匹配有就近原则 : 匹配最近的if
|| 逻辑或:任意一方为真就是为真。 左边表达式为真,右边表达式就不会执行第一个if就判断为假,直接到最后一个printf 打印,答案选D
5.若有定义语句: int a=10 ; double b=3.14 ; 则表达式 ‘A’+a+b 值的类型是()
A.char
B.int
C.double
D.float
类型自动提升
'A’是char类型,占一个字节,a是int 类型, 占4个字节,c是double类型,占8个字节。不同类型运算会自动提升,小范围提升为大范围 ,所以最后转换为double类型。
6.下面,p[1] [2]的值是 的值是()
int p[][4] = {{1}, {3, 2}, {4, 5, 6}, {0}};
A.1
B.0
C.6
D.2
本质是一个4行4列的二维数组,每个大括号是一行,都没有进行完全初始化,没初始化的默认为0
数组坐标从0开始,选B
7.选择表达式 11|10 的结果(本题数值均为十进制)()
A.11
B.10
C.8
D.2
逻辑运算:
选A
int fun(int a){
a^=(1<<5)-1;
return a;
}
fun(21)运行结果是()
A.10
B.5
C.3
D.8
1<<5 后等于32 ,再-1 等于31, 最后是a^31 也就是21^31
^ 运算:相同为0,不同为1选A
9.若有定义语句:int year=1009,*p=&year;以下不能使变量 year 中的值增至 1010 的语句是()
A.*p+=1;
B.(*p)++;
C.++(*p)
D.*p++
运算符优先级的问题,*的优先级大于 +=,()的优先级比++高,而++的优先级比*要高,没有对1009进行++,而是对指针++.所以选D
顺便回顾一下运算符的优先级:
10.下面关于"指针"的描述不正确的是()
A.当使用free释放掉一个指针内容后,指针变量的值被置为NULL
B.32位系统下任何类型指针的长度都是4个字节
C.指针的数据类型声明的是指针实际指向内容的数据类型
D.野指针是指向未分配或者已经释放的内存地址
解析:
free指针只是把指向的空间销毁了 ,并没有把值置为NULL,指针的值置空需要我们自己去手动置空,选A
组队竞赛


最直接的想法就是先进行排序,然后在找规律:

#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
int n;
while(cin>>n)
{
vector<int> v;
long long sum = 0;
v.resize(3*n);
for(size_t i = 0;i<v.size();i++)
{
cin>>v[i];
}
std::sort(v.begin(),v.end());
for(size_t i = 0;i<n;i++)
{
sum = sum+v[v.size()-2*(i+1)];
}
cout<<sum<<endl;
}
return 0;
}
删除公共字符串

思路1:通过哈希映射,把字符串s2放入hash中,进行标记。然后去遍历一遍字符串s1,找出没有重复的进行拼接即可解决此题
思路2:直接去找,在字符串s1中找s2的值,find相同的就直接erase掉
//思路1
#include <iostream>
#include <string>
using namespace std;
int main()
{
string s1,s2;
getline(cin,s1);
getline(cin,s2);
int hash[256] = {0};
for(size_t i = 0;i<s2.size();i++)
{
hash[s2[i]]++;
}
string ret = "";
for(size_t i = 0;i<s1.size();i++)
{
if(hash[s1[i]] == 0)
{
ret+=s1[i];
}
}
cout<<ret<<endl;
return 0;
}
//思路2
#include <iostream>
#include <string>
using namespace std;
int main()
{
string s1,s2;
getline(cin,s1);
getline(cin,s2);
for(size_t i = 0;i<s2.size();i++)
{
while(s1.find(s2[i]) != string::npos)
{
s1.erase(s1.find(s2[i]),1);
}
}
cout<<s1<<endl;
return 0;
}
我的Rails应用程序中安装了carrierwave。但是,当用户上传多页pdf时,我只希望应用程序获取文档中的第一页并将其转换为jpeg。这可能吗?用什么命令?这是我的uploader。#encoding:utf-8classImageUploader[200,300]##defscale(width,height)##dosomething#end#Createdifferentversionsofyouruploadedfiles:version:thumbdoprocess:resize_to_fill=>[150,210]process:convert=>:jpgdefful
有没有办法跳过CSV文件的第一行,让第二行作为标题?我有一个CSV文件,第一行是日期,第二行是标题,所以我需要能够在遍历它时跳过第一行。我尝试使用slice但它会将CSV转换为数组,我真的很想将其读取为CSV,以便我可以利用header。 最佳答案 根据您的数据,您可以使用另一种方法和skip_lines-option此示例跳过所有以#开头的行require'csv'CSV.parse(DATA.read,:col_sep=>';',:headers=>true,:skip_lines=>/^#/#Markcomments!)do|
我的任务是从数组中选择最高和最低的数字。我想我很清楚我想做什么,但只是努力以正确的格式访问信息以满足通过标准。defhigh_and_low(numbers)array=numbers.split("").map!{|x|x.to_i}array.sort!{|a,b|ba}putsarray[0,-1]end数字可能看起来像"80917234100",要通过,我需要输出"9234"。我正在尝试putsarray.first.last,但一直无法弄明白。 最佳答案 有Array#minmax完全满足您需要的方法:array=[80,
或者好像我必须自己写方法?(保持DHA不变):ruby-1.9.2-p180:001>s='omega-3(DHA)'=>"omega-3(DHA)"ruby-1.9.2-p180:002>s.capitalize=>"Omega-3(dha)"ruby-1.9.2-p180:003>s.titleize=>"Omega3(Dha)"ruby-1.9.2-p180:005>s[0].upcase+s[1..-1]=>"Omega-3(DHA)" 最佳答案 如果我的回答只是垃圾,我深表歉意(我不做ruby)。但我相信我已经为您找到了答
我有这个字符串:auteur="comtedeFlandreetHainaut,Baudouin,Jacques,Thierry"我想删除第一个逗号之前的所有内容,即在这种情况下保留“Baudouin,Jacques,Thierry”试过这个:nom=auteur.gsub(/.*,/,'')但这会删除最后一个逗号之前的每个逗号,只保留“Thierry”。 最佳答案 auteur.partition(",").last#=>"Baudouin,Jacques,Thierry" 关于rub
我有一个以时间戳为键的哈希。hash={"2016-05-31T22:30:58+02:00"=>{"path"=>"/","method"=>"GET"},"2016-05-31T22:31:23+02:00"=>{"path"=>"/tour","method"=>"GET"},"2016-05-31T22:31:05+02:00"=>{"path"=>"/contact_us","method"=>"GET"}}我订购了这个系列并得到了第一双这样的:hash.sort_by{|k,_|k}.first.first但是我该如何删除它呢?删除方法requiresyou知道key的准确
我有一个字符串数组,我需要从中提取第一个单词,将它们转换为整数并获得它们的总和。示例:["5Apple","5Orange","15Grapes"]预期输出=>25我的尝试:["5","5","15"].map(&:to_i).sum 最佳答案 我从你的问题中找到了答案。["5Apple","5Orange","15Grapes"].map(&:to_i).sum在数组中,如果存在任何整数可转换值,那么它将自动转换为整数。 关于arrays-字符串数组中字符串第一部分的总和,我们在Sta
在我看来,我正在尝试显示一个对象表,这是我的代码:CategoriesCBB's">然而这是抛出一个错误说:can'tconvertCapabilityBuildingBlockintoArray关系是正确的,错误来self尝试在此处减去数组的第一个对象的行:有什么方法可以忽略数组中的第一个对象来遍历数组吗?谢谢 最佳答案 尝试使用Array.drop-http://www.ruby-doc.org/core/classes/Array.html#M000294 关于ruby-on-ra
我正在使用FasterCSV我正在循环使用这样的foreachFasterCSV.foreach("#{Rails.public_path}/uploads/transfer.csv",:encoding=>'u',:headers=>:first_row)do|row|但问题是我的csv将前3行作为标题...有什么方法可以使fasterCSV跳过前三行而不是仅跳过第一行?? 最佳答案 不确定FasterCSV,但在Ruby1.9标准CSV库(由FasterCSV制作)中,我可以执行以下操作:c=CSV.open'/path/to/
我有一个数组。我需要保留除索引0处的元素以外的所有内容。此时我的大脑被炸毁了。我整天都在编程。任何帮助都会很棒。谢谢! 最佳答案 使用Array#shift方法,它完全符合您的要求:a=[1,2,3]a.shift#=>1a#=>[2,3] 关于Ruby删除数组的第一个索引,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/11783005/